我在数据库中存储所有日期/时间都是以协调世界时(UTC)为准。
我知道用户所在时区的名称(例如“美国东部标准时间”)。
为了显示正确的时间,我考虑需要将用户的时区偏移量加到UTC日期/时间上。但我怎样才能根据时区名称获取时区偏移量呢?
谢谢!
我在数据库中存储所有日期/时间都是以协调世界时(UTC)为准。
我知道用户所在时区的名称(例如“美国东部标准时间”)。
为了显示正确的时间,我考虑需要将用户的时区偏移量加到UTC日期/时间上。但我怎样才能根据时区名称获取时区偏移量呢?
谢谢!
TimeZoneInfo.FindSystemTimeZoneById
方法获取指定Id的TimeZoneInfo
对象,然后从中获取TimeZoneInfo.GetUtcOffset
。TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time");
TimeSpan offset = tzi.GetUtcOffset( myDateTime);
(TimeZoneInfo)myDropDown.SelectedItem
获取对TimeZoneInfo对象的引用。然后,您就不需要每次调用.FindSystemTimeZoneById
,因为您已经拥有该对象了。 - Carlos P不要手动添加,你应该利用TimeZoneInfo
的ConvertTime
方法,它可以根据你指定的时区进行日期转换。
var localizedDateTime = TimeZoneInfo.ConvertTime(yourDateTime, localTimeZoneInfo);