如何为整个应用程序设置通用时区。
因此,即使时区发生变化,应用程序也应按照通用时区显示时间。
那么可以设置整个应用程序时区吗?
答案 0 :(得分:2)
不幸的是你不能(你可以在下面的帖子中查看Jon Skeet的回复:Setting/Changing an .NET application's TimeZone)。 所以你有两个选择:
DateTime.ToUniversalTime
(MSDN description)DateTime
的类,然后使用它代替答案 1 :(得分:1)
您最好的选择是创建一个localization
类,它将在您喜欢的时区中返回DateTime。在您的应用程序中,如果要显示日期和时间,则应使用此类而不是DateTime.Now
:
class Localization
{
public Localization(string timeZoneId = "UTC")
{
TimeZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId);
}
public virtual TimeZoneInfo TimeZone { get; set; }
public DateTime Now
{
get
{
return TimeZoneInfo.ConvertTime(DateTime.UtcNow, TimeZone)
}
}
}
如果您只想在应用程序中使用一个静态时区,则可以创建上面的单例单。
var locale = new Localization(); // default is UTC, provide yours.
var now = locale.Now;
答案 2 :(得分:-1)
如何为整个应用程序设置通用时区?
使用以下代码:
TimeZone zone = TimeZone.CurrentTimeZone;
DateTime universal = zone.ToUniversalTime(DateTime.Now);