[C++][Python]YYYYMMDDHHMMSS


UTC time yyyymmddhhmmss
出力UTCを言語別に整理する方法
C++ (UTC yyyymmddhhmmss)
time_t t = time(nullptr);
struct tm buf;
gmtime_s(&buf, &t);
int year = 1900 + buf.tm_year;
int month = buf.tm_mon + 1;
int day = buf.tm_mday;
int hour = buf.tm_hour;
int minute = buf.tm_min;
int second = buf.tm_sec;
char time_str[128] = { 0 };
sprintf_s(time_str, "%4d/%02d/%02d %02d:%02d:%02d", year, month, day, hour, minute, second);
std::cout << time_str << std::endl;
Python (UTC yyyymmddhhmmss)
import datetime
s = datetime.datetime.utcnow().strftime("%Y/%m/%d %H:%M:%S")
print(s)
時差を求める
上記のフォーマットで文字列が出力された場合、以下のようにdatetimeクラスに変更して差異を得ることができます.
次の例では、秒数の差を計算します.
次のようにはできません
diff = datetime.strptime(timestr1, '%Y/%m/%d %H:%M:%S') - datetime.strptime(timestr2, '%Y/%m/%d %H:%M:%S')
print(diff.seconds)
次のようにする必要があります.
if timestr1 > timestr2:
    diff = datetime.strptime(timestr1, '%Y-%m-%d-%H-%M-%S') -  datetime.strptime(timestr2, '%Y-%m-%d-%H-%M-%S')
else:
    diff = datetime.strptime(timestr2, '%Y-%m-%d-%H-%M-%S') - datetime.strptime(timestr1, '%Y-%m-%d-%H-%M-%S')
print(diff.seconds)
References
  • https://hurderella.tistory.com/76