.net 时区id到TimeZoneInfo
我需要将时间戳从可能不同的时区转换为本地时区。我希望用c# 但是,时间戳附带的时区id类似于EST5EDT,TimeZoneInfo.FindSystemTimeZoneById()似乎无法识别。EST5EDT似乎是一个标识符,因此我认为应该有一些现有代码来处理此类标识符。看起来(事实上,id的来源确实是一个Java程序).net 时区id到TimeZoneInfo,.net,datetime,timezone,date-conversion,.net,Datetime,Timezone,Date Conversion,我需要将时间戳从可能不同的时区转换为本地时区。我希望用c# 但是,时间戳附带的时区id类似于EST5EDT,TimeZoneInfo.FindSystemTimeZoneById()似乎无法识别。EST5EDT似乎是一个标识符,因此我认为应该有一些现有代码来处理此类标识符。看起来(事实上,id的来源确实是一个Java程序) 是否有一个c#函数可以将时区id(如EST5EDT)转换为.net TimeZoneInfo,或者是否有一个比TimeZoneInfo.ConvertTime()更好的函数可
是否有一个c#函数可以将时区id(如EST5EDT)转换为.net TimeZoneInfo,或者是否有一个比TimeZoneInfo.ConvertTime()更好的函数可以识别EST5EDT?也可以识别
“EST5EDT”
是POSIX样式的标识符。它也是为数不多的支持向后兼容的产品之一,但在翻译时,它基本上被视为“America/New_York”
。如果您有其他更复杂的POSIX时区ID,例如“CET-1CEST,M3.5.0/2,M10.5.0/3”
,那么我链接的答案对您没有帮助。阅读更多信息。@MattJohnson感谢链接到您的答案。我同意这是一个副本,应该关闭(这显然是我自己无法做到的)。
TimeZoneInfo.ConvertTime(timestamp, TimeZoneInfo.FindSystemTimeZoneById(timeZoneId), TimeZoneInfo.Local);