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