很好奇人们是如何解决这个问题的......我有一系列工作在一夜之间运行,它们根据当天的客户数据汇总报告。他们现在要求时区支持。
其中一份报告是..您昨晚有 x 个订单,但昨晚可能因时区而异。组织或处理数据以便考虑时区以使这项工作更容易的最佳方法是什么?
谢谢
很好奇人们是如何解决这个问题的......我有一系列工作在一夜之间运行,它们根据当天的客户数据汇总报告。他们现在要求时区支持。
其中一份报告是..您昨晚有 x 个订单,但昨晚可能因时区而异。组织或处理数据以便考虑时区以使这项工作更容易的最佳方法是什么?
谢谢
以 UTC 时区表示所有日期是一种很好的做法。这个时区没有令人困惑的夏令时。然后,美国/太平洋时区的客户可以要求提供 2010-09-20T00:00-700 到 2010-09-21T00:00-700 之间的订单报告(使用ISO 8601 格式)。程序的输入层应将客户日期和存储的订单日期转换为自 UTC 纪元以来的秒数,然后从那里开始。
在我的应用程序中,我将本地时间加上偏移量保存到UTC。这样,我仍然可以比较代码中的值(通过将它们转换为世界时间),但是当我将其显示在屏幕上时,用户会看到他们期望的时间(“是的,我昨天 9:30 做到了”) . 通过开关,他们可以显示时区或切换到世界时间或以当地时间显示所有时间。
根据我的经验,我们在夜间运行期间将数据汇总到每小时(或十五分钟)的存储桶中。然后,您可以让用户请求根据他们用于报告的时区获取相关存储桶。