C++ 将时间 ET 转换为 CET 或其他内容



我正在解析包含日期和时间的文件。假设我有以下格式的日期和时间:

2009/07/18 10:48:39 CET (value in txt-file)

这是在ET中:

2009/07/18 4:48:39 ET (could also be the value i parsed)

有没有在时间/日期之间进行转换的解决方案?也许提升?

在提升文档中找不到有用的信息。

假设我想在 c++ 中从 CET 到 ET 或 ET 到 EST 或 CET 到 EST,你会怎么做?

strftime 允许您使用日期时间格式字符(%Y、%m、%d 等)打印出struct tm*对象。

你可以做的是通过解析你的输入数据来加载一个struct tm*对象(假设它是常规的,这应该不需要很多代码),然后根据你的时区转换用一些自定义逻辑修改tm结构的各个部分(添加小时,然后检查是否需要根据新的小时值更新一天), 然后通过 strftime 以您想要的格式打印此日期时间值。不像 php 中可用的 strptime/strftime 函数那么简单,但仍然是一个解决方案。

我推荐 https://github.com/google/cctz

另请注意,"CET"和"ET"不是实时时区标识符。它们可能是某个时区的缩写,但它们不唯一标识实际时区。如果您对文件中的数据有一定的控制权,则应将"CET"和"ET"更改为数字 UTC 偏移值,例如由 %zstrftime()(和 cctz::Format())生成的值。数字 UTC 偏移量和 Y/M/D H:M:S 字段可让您正确解析确切的时间时刻。

相关内容

  • 没有找到相关文章

最新更新