有没有办法将.NET应用程序的TimeZone设置为OS的TimeZone以外的值?
例如,我在具有中央标准时间设置的操作系统上使用我的应用程序,我希望该应用程序的行为就像它在东部标准时间,而不必使用方法手动转换我的应用程序中的所有DateTimes喜欢 TimeZoneInfo.ConvertTimeBySystemTimeZoneId()。
答案 0 :(得分:5)
不,我不相信有任何办法可以做到这一点。它不像时区就像文化一样在每个线程的基础上设置。例如,我相信DateTime.ToLocalTime 总是使用系统时区
但是,我不会在任何地方使用TimeZoneInfo.ConvertTimeBySystemTimeZoneId
。我会公开一个类型为TimeZoneInfo
的属性来表示适当的时区 - 或者设置一个帮助类来转换你需要的地方。
根据您的应用程序,您可能会发现,如果您选择正确的转换数据点(不总是只是将其保留在UTC中除了UI层)您没有像预期的那样执行任何转化。