• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[Visual C++] Konwersja formatu kalendarza z yyyy.MM.dd do yyyy/MM/dd

HackNation - ogólnopolski hackathon
0 głosów
686 wizyt
pytanie zadane 12 grudnia 2017 w C i C++ przez oczko Nowicjusz (230 p.)
Pracuję w Visual C++ i mam kalendarz monthCalendar, który zwraca mi datę w postaci yyyy.MM.dd, a potrzebuję formatu yyyy-MM-dd do bazy danych. Robiłem to poprzez DateTime Convert:

DateTime^ DT = Convert::ToDateTime(DT)

No i format daty jest taki sam.
Czy istnieje jakas funkcja w której moge podac do jakiego formatu chce skonwertowac?

1 odpowiedź

0 głosów
odpowiedź 12 grudnia 2017 przez adrian17 Mentor (354,880 p.)

DateTime^ DT = Convert::ToDateTime(DT)

(zakładając że `DT` to DateTime) To zamienia DateTime... na identyczny obiekt DateTime. Obiekt czasu, jak nazwa wskazuje, przechowuje tylko czas - nie interesuje go formatowanie. To, czego chcesz, to formatowanie do stringa.

Czas można sformatować do standardowego formatu ISO8601:

datetime.ToString("o")

Lub z wybranym, np

datetime.ToString("yyyy-MM-dd HH:mm:ss")

(BTW, C++/CLI to dość niszowy, mało popularny/wspierany/lubiany język. Silnie sugeruję użycie C# zamiast tego)

komentarz 13 grudnia 2017 przez oczko Nowicjusz (230 p.)
No i właśnie coś takiego nie działa. Próbowałem wcześniej użyć takiego zapisu bo było to najprostsze rozwiązanie jakie przyszło mi do głowy, ale wszystko pozostaje takie samo. Do tego zauważyłem, że źle zapisałem format jaki mi wpisuje po użyciu Convert.ToDateTime. Powinno być dd.MM.yyyy.
komentarz 13 grudnia 2017 przez adrian17 Mentor (354,880 p.)

No i właśnie coś takiego nie działa

Co to znaczy "nie działa"? Jaki jest wynikowy string? Może być nawet screen z VSa.

Convert.ToDateTime

Tak jak napisałem wyżej - to AFAIK nie produkuje żadnego stringa i nie robi nic z formatowaniem.

komentarz 14 grudnia 2017 przez oczko Nowicjusz (230 p.)

Już tłumaczę. Mam coś takiego:

DateTime DT = Convert::ToDateTime(data + " " + godzina);
DT.ToString("yyyy-MM-dd HH:mm:ss");

czyli tak jak mi podałeś. I po tym kodzie wynik nadal jest taki sam, tzn. dd.MM.yyy HH:mm:ss

komentarz 14 grudnia 2017 przez oczko Nowicjusz (230 p.)

Dobra już to ogarnąłem. Może komuś się przyda, więc wrzucam:

DateTime DT = Convert::ToDateTime(data + " " + godzina);
String^ tekst;
tekst = DT.ToString("yyyy-MM-dd HH:mm:ss");

 

Podobne pytania

0 głosów
1 odpowiedź 1,745 wizyt
0 głosów
2 odpowiedzi 3,700 wizyt
0 głosów
1 odpowiedź 745 wizyt
pytanie zadane 3 sierpnia 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)

93,625 zapytań

142,546 odpowiedzi

323,034 komentarzy

63,129 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1210p. - dia-Chann
  2. 1197p. - DziarnowskiJ
  3. 1177p. - Łukasz Piwowar
  4. 1172p. - CC PL
  5. 1161p. - Maurycy W
  6. 1141p. - Adrian Wieprzkowicz
  7. 1138p. - raydeal
  8. 1116p. - rucin93
  9. 1101p. - robwarsz
  10. 1100p. - Mariusz Fornal
  11. 1024p. - Tomasz Bielak
  12. 1024p. - ssynowiec
  13. 885p. - Dominik Łempicki (kapitan)
  14. 847p. - Grzegorz Aleksander Klementowski
  15. 838p. - Wojciech Malicki
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...