tnblog
首页
视频
资源
登录

.Net6 指定时区

7147人阅读 2022/6/20 16:22 总访问:3467324 评论:0 收藏:2 手机
分类: .net后台框架

.netcore

.Net6 指定时区


最近相当忙!忙着学这学那的,各种考试。以及项目上也有很多改动。还有这恶心的时间问题(特别注意当使用容器的时候的时间问题希望大家尽量用DateTime.UtcNow

UTC时间


简单来说这是一个时间的标准,像中国就是东八区,在UTC的时间之上加多少时间就是对应的中国时间(以此类推)。

获取当前UTC时间

  1. DateTime.UtcNow;

将UTC时间转换成中国区时间

  1. var name = "China Standard Time";
  2. // 中国:China Standard Time
  3. // 意大利:W. Europe Standard Time
  4. // 获取当前时区
  5. TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById(name);
  6. // 将UTC时间转换成中国时区的时间
  7. DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(Convert.ToDateTime(time), easternZone);
  8. string nowtime = easternTime.ToString();


那你说:我怎么知道它哪个时区叫什么名字?通过下面的代码可以获取所有的UTC时区的名字。

  1. //查看所有地区时间信息
  2. IList<TimeZoneInfo> lines = TimeZoneInfo.GetSystemTimeZones();


给你们截张图


然后给你们写几个常用的时区。

常用时区

国家 代码 时区ID 标准名称
美国 US Pacific Standard Time 太平洋标准时间
英国 GB GMT Standard Time GMT 标准时间
德国 DE W. Europe Standard Time 西欧标准时间
法国 FR Romance Standard Time 罗马标准时间
日本 JP Tokyo Standard Time 东京标准时间
意大利 IT W. Europe Standard Time 西欧标准时间
西班牙 ES Romance Standard Time 罗马标准时间
加拿大 CA Pacific Standard Time 太平洋标准时间
墨西哥 MX Central Standard Time (Mexico) 中部标准时间(墨西哥)
中国 CN China Standard Time 中国标准时间
澳大利亚 AU E. Australia Standard Time 东部澳大利亚标准时间

扩展方法

  1. public static class DateZoneTimeExtension
  2. {
  3. public enum LocalTimeZoneEnum
  4. {
  5. China = 1050,
  6. Italy = 1000,
  7. US = 1100,
  8. }
  9. static string LocalTimeZoneEnumLong(LocalTimeZoneEnum time) => time switch
  10. {
  11. LocalTimeZoneEnum.China => "China Standard Time",
  12. LocalTimeZoneEnum.Italy => "W. Europe Standard Time",
  13. LocalTimeZoneEnum.US => "Pacific Standard Time",
  14. _ => throw new NotImplementedException()
  15. };
  16. public static DateTime ToLocalTimeZone(this DateTime time, LocalTimeZoneEnum localTimeZoneEnum)
  17. {
  18. TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById(LocalTimeZoneEnumLong(localTimeZoneEnum));
  19. DateTime easternTime = TimeZoneInfo.ConvertTimeFromUtc(time, easternZone);
  20. return easternTime;
  21. }
  22. }

注意:必须通过DateTime.UtcNow来调扩展方法哟,然后需要哪些自己取舍


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术