繁体   English   中英

在.net核心中设置全局时区

[英]set global timezone in .net core

在.Net Core 2中-

有没有一种方法可以全局设置应用程序的时区,以便每当我请求DateTime.Now我都会获取我想要的时区的当前时间(让我们说GMT + 3),而不是托管应用程序的服务器的时间?

我发现进行配置的好地方,这将是Startup.cs文件,但是我的搜索查询使我无处可做。

您可以为此使用TimeZoneInfo

DateTime eastern = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, "Eastern Standard Time");

替换为所需的时区。

没有。

DateTime.Now始终返回系统本地时区中的时间。

一种方法是让包装器请求当前日期时间,例如

public static class MyTimeZone
{
    public static DateTime Now => DateTime.UtcNow.AddHours(3);
}

你可以要求这样的时间

MyTimeZone.Now

如果时区是动态的,只需将其更改为函数即可。

public static class MyTimeZone
{
    public static DateTime Now(int offset) => DateTime.UtcNow.AddHours(offset);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM