1
我不得不DateTime
從本地使用特定的時區轉換爲UTC的方法:轉換日期時間,使用時區有時UTC工作正確
TimeZoneInfo timeZone = FindSystemTimeZoneById(timeZoneId);
DateTime dateTimeInUtc = TimeZoneInfo.ConvertTimeToUtc(localDateTime, timeZone);
return dateTimeInUtc;
但有時(我不知道什麼時候,爲什麼,但大部分它的工作時間正確)這種轉換不符合我的預期。
例如:
- 時區是
-5
- 當地時間是
08/28/2013 12:00:00 AM
(DateTimeKind
是Unspecified
)
那麼在這行代碼的值超過這個值後,你期望什麼?
DateTime dateTimeInUtc = TimeZoneInfo.ConvertTimeToUtc(localDateTime, timeZone);
我希望UTC時間爲08/28/2013 5:00:00 AM
。但
08/28/2013 4:00:00 AM
。如果時區爲-5,則不會更正。
絕對相同的代碼在幾個月內正常工作。即使我看過調試器轉換是正確的。
大約2周前我遇到了與此代碼相同的問題(錯誤轉換)。但在第二天,問題消失了,沒有任何代碼更改。
但在此期間,我將UTC轉換爲+5小時。 1周前,使用相同的代碼是5小時。 –
@SergeyGavruk你使用什麼日期?一樣?或者您是否恰好在3月10日之前或11月3日之後使用了日期? – Alan
hm。也許原因是因爲我的日期不在這個範圍內。謝謝 –