• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
591 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 (352,580 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 (352,580 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,639 wizyt
0 głosów
2 odpowiedzi 3,475 wizyt
0 głosów
1 odpowiedź 684 wizyt
pytanie zadane 3 sierpnia 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)

93,324 zapytań

142,323 odpowiedzi

322,389 komentarzy

62,652 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...