Re: C++ čas ve stringu
Pavel Hudeček
edizon na seznam.cz
Úterý Květen 2 10:32:29 CEST 2023
Díky.
Takže nakonec je to jednoduchý.
Zkusil jsem:
std::string s1(40, '\0'), s2(40, '\0'), s3(40, '\0');
std::strftime(&s1[0], s1.size(), "%Y.%m.%d %H:%M:%S", std::localtime(&now));
std::strftime(&s2[0], s2.size(), "%Y.%m.%D %H:%M:%S", std::localtime(&now));
std::strftime(&s3[0], s3.size(), "%Y.%m.%d %H:%m:%S", std::localtime(&now));
textBox3->Text = String::Format("s1:{0}, s2:{1}, s3:{2}", gcnew
String(s1.c_str()), gcnew String(s2.c_str()), gcnew String(s3.c_str()));
výsledek:
(obrázek byl v TB menší než ve zdrojovém okně, jak jsem ho zvětšil, jsem
zvědav jak dopadne po odeslání)
Program do kterého jsem to chtěl, který slouží k testování ošetření chyb
v jednom zařízení, běží už od pátku a chyba stále nic:-) Tak jsem to
musel otestovat mimo. Prozměnu jsem netušil, že dostat std::string do
String^, co se hodí do textboxu, bude relativně složitý.
PH
Dne 02.05.2023 v 8:08 Zbyněk Jaroš napsal(a):
> Zdravím,
> Používám tohle.
> ...
> //actual time
> std::time_t now =
> std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
> std::string s(30, '\0');
> std::strftime(&s[0], s.size(), "%d-%m-%Y %H:%M:%S",
> std::localtime(&now));
>
> std::cout << "E:(" << s << "," << tidStr.c_str() << "," <<
> __FUNCTION__ << "," << __LINE__ << ")User press Ctrl+C(SIGINT) tid="
> << std::hex <<tid<< std::endl;
> ...
>
> výstup z konzole
> ...
> I(JqHxM,broadcastThread,331):tid=B5AAE1C0. Brodcast thread is running
> ^CE:(02-05-2023 07:43:17,JGI1M,signal_handler,177)User press
> Ctrl+C(SIGINT) tid=b6ab01c0
> I(JORw4,main,798):tid=B72D6010. Main thread finished.
> ...
>
> Z.
>
> ---------- Původní e-mail ----------
> Od: Pavel Hudeček <edizon na seznam.cz>
> Komu: hw-list na list.hw.cz
> Datum: 29. 4. 2023 11:08:25
> Předmět: Re: C++ čas ve stringu
>
>
> Díky.
> strftime mi navrhnul i chatgpt. Zajímavé je, že ale nebyl schopen
> vyrobit ukázku, kde by seděly všechny datové typy mezi now() a
> strftime:-)
>
> PH
>
> Dne 28.04.2023 v 13:38 Jindroush napsal(a):
> > https://en.cppreference.com/w/cpp/chrono/c/strftime
> > nebo pak rucne coutovat prave pres jednotlive hodnoty v calendar
> (od
> > C++20)
> >
> > On 28.04.2023 13:18, Pavel Hudeček wrote:
> >> Dobrý den všem,
> >> potřeboval bych v komandlajnovém C++ programu datum a čas v
> std::string
> >> Tohle funguje:
> >> time_t tt =
> >>
> std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
>
> >> char chr[50];
> >> ctime_s(chr, 50, &tt);
> >> std::string s(chr);
> >>
> >> Ale:
> >> 1. Připadá mi to moc složitý
> >> 2. Na konci je enter a dost mi tam vadí
> >> 3. Líbilo by se mi datum v číselném tvaru (pokud možno d-m-r, nebo
> >> r-m-d) bez anglických měsíců a dnů v týdnu. Nebo, když to musí
> být s
> >> názvama, tak česky lokalizované.
> >>
> >> Alternativa je, si to přes nějaké další std::chrono věci
> rozsekat na
> >> čísla dní, měsíc;, let, hodin, ... ale to beru jako nejsložitější,
> >> kdyby ostatní selhaly.
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230502/5c756175/attachment.htm>
------------- další část ---------------
A non-text attachment was scrubbed...
Name: JWKQub6988muQfdE.png
Type: image/png
Size: 1759 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230502/5c756175/attachment.png>
Další informace o konferenci Hw-list