• 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

Object Storage Arubacloud
0 głosów
500 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 Ekspert (344,860 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 Ekspert (344,860 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,531 wizyt
0 głosów
2 odpowiedzi 3,000 wizyt
0 głosów
1 odpowiedź 544 wizyt
pytanie zadane 3 sierpnia 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)

92,584 zapytań

141,433 odpowiedzi

319,668 komentarzy

61,966 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...