我已经阅读了很多 SO 文章,但我似乎无法找到问题的好答案。发布的建议包括将日期转换为字符串或从字符串转换多次的函数,最后连接位,这一切似乎......混乱
那么问题来了:
我们在世界各地都有服务器。所有服务器都以自己的本地时间运行,并保留带有服务器本地时间条目的日志。一些服务器在 DST 观察区域,其他服务器不在
假设我有来自日志的这些字符串:2013-01-01 12:34:56, 2013-07-01 12:34:56 我知道这个服务器在纽约,所以它是 UTC-5 或 UTC-4 时夏令时正在运行
而且我在香港的服务器上的日志中有相同的字符串,其中 DST 不适用,时区为 +8
我所追求的是一段代码,我可以告诉它:
- 这是一个代表时间的字符串
- 这是字符串来自的时区
- 如果相关,应适用夏令时
并且代码会将字符串解析为 DateTimeOffset,如果解析的时间与 DST 相关,则根据 DST 调整偏移量
例如:NY 服务器日志显示“ 2013-01-01 ...”DST不适用于 1 月的这个日期,因此解析的日期应该是:纽约时间 12:34:56,又名 17:34:56 UTC(因为它是 -5,没有 DST)
纽约服务器日志显示“ 2013-07-01 ...”DST确实适用于 6 月的这个日期,因此解析的日期应该是:纽约时间 12:34:56,也就是 UTC 时间 16:34:56(因为它是-4,有夏令时)
香港服务器,两个日期时间都解析为 04:34:56 UTC
多谢你们