• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#日期字符串和UTC时间的转换

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

需求:为了解决夸时区的时间问题,将时间固定设置为了 (GMT-05:00) Eastern Time (US and Canada)
但是在浏览器端还需要进行时间的对比,但是js对时间的操作太弱了,没有考虑使用第三方的js库,所以用了以下方案,
返回两个时间,一个是EST时区的时间格式用来显示,一个是带时区的UTC时间,因为发现带时区的时间字符串使用new Date()会直接转换为本地时间。

            var esternTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");

                    detail.StartTime = TimeZoneInfo.ConvertTimeFromUtc(offsetStartTime.UtcDateTime, esternTimeZone);
                    detail.StartTimeUTC = TimeZoneInfo.ConvertTimeFromUtc(offsetStartTime.UtcDateTime, TimeZoneInfo.Utc);
                    detail.EndTime = TimeZoneInfo.ConvertTimeFromUtc(offsetEndTime.UtcDateTime, esternTimeZone);
                    detail.EndTimeUTC = TimeZoneInfo.ConvertTimeFromUtc(offsetEndTime.UtcDateTime, TimeZoneInfo.Utc);

可以用以下代码获取 TimeZoneID

IList<TimeZoneInfo> lst = TimeZoneInfo.GetSystemTimeZones();

客户端就使用StartTimeUTC来进行时间判断

var StartTimeUTC = "2021-05-31T09:00:00+00:00";
var nowDate = new Date(); //Fri May 14 2021 18:19:57 GMT+0800 (China Standard Time)
var startTime = new Date(StartTimeUTC); //Mon May 31 2021 17:00:00 GMT+0800 (China Standard Time)
if (startTime < nowDate) {
  // do something
}

参考:how to convert string to DateTime as UTC as simple as that


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用Mutex实现程序单实例运行(c#)发布时间:2022-07-10
下一篇:
【转】C#编写NotifyIcon将窗口最小化到托盘发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap