我有一个应用程序,其中所有 DateTime 始终是服务器的时间。这意味着一个时区。这个想法是使应用程序在世界范围内兼容。第一步是将数据库中存储的所有日期时间转换为UTC,这没问题。第二步是为用户假设一个时区(基于业务逻辑),并将其用作显示和解析用户输入的默认值。此外,如果 DateTime.Now 之类的方法和其他在没有明确时区/区域信息的情况下构造日期时间的方法调用也假定该时区/区域,那将是很好的。
这个想法是从数据库中为用户假设一个时区。我有用户和他的时区,没问题。
问题是表示逻辑。代码中到处都是 DateTime.now 方法,要转换所有这些方法需要做很多工作。
为了避免这种情况,我需要一个全局时区设置,其中 DateTime 知道它是哪个时区。最好在一个通用的地方。
class business logic
InitializeCulture()
set time zone for user
end function
end class
class presentation logic
sample()
TimeOfTheCurrentUser = DateTime.now
end function
end class