我想做一個函式來獲取特定格式的當前時間。C 不是我的主要語言,但我正在嘗試這樣做:
current_datetime(timezone='-03:00', offset=timedelta(seconds=120))
def current_datetime(fmt='%Y-%m-%dT%H:%M:%S', timezone='Z', offset=None):
offset = offset or timedelta(0)
return (datetime.today() offset).strftime(fmt) timezone
到目前為止,我在互聯網上搜索得最好的是這個,但缺少偏移部分:
#include <iostream>
#include <ctime>
std::string current_datetime(std::string timezone="Z", int offset=1)
{
std::time_t t = std::time(nullptr);
char mbstr[50];
std::strftime(mbstr, sizeof(mbstr), "%Y-%m-%dT%H:%M:%S", std::localtime(&t));
std::string formated_date(mbstr);
formated_date = std::string(timezone);
return formated_date;
}
int main()
{
std::cout << current_datetime() << std::endl; //2021-10-26T21:34:48Z
std::cout << current_datetime("-05:00") << std::endl; //2021-10-26T21:34:48-05:00
return 0;
}
這個想法是獲取一個字串,它是一個“開始日期”,一個作為“結束日期”,即未來 X 秒。我堅持使用偏移/增量部分
uj5u.com熱心網友回復:
只需將偏移量添加到自紀元以來的秒數。
std::time_t t = std::time(nullptr) offset;
您還可以offset使用 type std::time_t,因為它表示以秒為單位的時間距離。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/337796.html
上一篇:在-I標志(例如-I@mathinc@)之后,makefile中的“@”符號是什么意思?
下一篇:C 程式未進入“for”回圈
