如果仅需要日期保存,则将其转换为UTC然后再转换为本地可能会在不同的时区中表现不同

时间:2018-04-19 13:10:38

标签: datetime localization timezone

我的前端有一个日期字段。而我正在从1942/2018的时区保存它,我在+8。当我在本地datetime.ToLocalTime()上加载它完美地在+8偏移量,它将显示19/04/2018但坐在+7的人将在18/04/2018 23:00获得,因此它将显示18 / 04/2018。如何处理这种情况。

1 个答案:

答案 0 :(得分:1)

一般情况下:您不应仅将日期转换为UTC,因此您应将其保留为本地日期。

但它确实取决于数据的使用。

如果您正在使用某些同步(所有发票直到修复点),带时区的时间很好,但在这种情况下,还应包括小时和分钟。

如果您关心发票中的日期,则可能无法将日期转换为UTC(因此请保留本地日期)。如果汇总发票,您可以等到所有时区都过去一天(并且所有发票都填入系统)。

当人们查看数据时,他们期望什么? (案例#1或案例#2)。然后评估您需要的数据类型。在第一种情况下,您还应该添加(至少)小时和分钟(时区永远不会有秒数)。

一般来说,如果你只有一个约会,那么你主要是第二种情况。