在数据库中,我以UTC格式存储所有日期/时间。
我知道用户的时区名称(例如“美国东部标准时间”)。
为了显示正确的时间,我认为我需要将用户的时区偏移量添加到UTC日期/时间。但是如何通过时区名称来缩短时区?
谢谢!
答案 0 :(得分:39)
您可以使用TimeZoneInfo.FindSystemTimeZoneById
使用提供的ID获取TimeZoneInfo
对象,然后使用TimeZoneInfo.GetUtcOffset
:
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time");
TimeSpan offset = tzi.GetUtcOffset( myDateTime);
答案 1 :(得分:4)
您可以使用TimeZoneInfo课程的GetSystemTimeZones()方法获取服务器上配置的所有时区列表,并将其与您客户端的时区匹配。
虽然为什么你的时区有“美国东部标准时间”?这是从哪里来的?
答案 2 :(得分:2)
您应该利用ConvertTime
的{{1}}方法,而不是进行一些手动添加,这种方法将根据您指定的TimeZone处理转换日期。
TimeZoneInfo