给定DateTime对象,如何获得指定TimeZone的通用时间?我的应用程序(定时器)要求用户指定时间和时区,我需要根据指定的时间+时区值保存UTC。
例如,用户A指定
日期时间:07/06/2011 7:30 AM TimeZone:东部标准时间(-5:00)。
用户B指定:
日期时间:07/06/2011 05:00 PM TimeZone:印度标准时间(+5:30)。
我相信上述DateTime值的UTC将是相同的,并且上述两个定时器将同时发生。问题是如何让UTC保存在数据库中?我无法获得上述日期时间值的匹配UTC。
答案 0 :(得分:4)
您可以将DateTime
与TimeZoneInfo
结合使用:
var utc = TimeZoneInfo.ConvertTimeToUtc(dateTimeAsEnteredByUser,
timeZoneChosenByUser);
您需要确保Kind
的{{1}}属性设置为dateTimeAsEnteredByUser
。
顺便说一句:
你指定的两次不一样。第一个是UTC时间12:30,第二个是UTC时间11:30。此外,17:00 PM不存在,可能是17:00或5:00 PM。
答案 1 :(得分:1)
转换为Utc:
DateTime utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTime, timeZone);