2010-09-16 29 views
2

documentation說......ToLocalTime在時區之間工作嗎?

  • 可以使用ToLocalTime方法來恢復被ToUniversalTime或FromFileTimeUtc方法轉換爲UTC本地日期和時間值。

,並接着說(立即)

  • 然而,如果原來的時間代表了本地時區的時間無效,它不會匹配的恢復值。

後者是否意味着如果時間「無效」(無論這意味着什麼?)它只會不起作用?

+0

我的傾向是,稱爲ToLocalTime的方法的全部要點是它跨時間區域轉換時間,但您說得對,文檔不明確。你有沒有嘗試過測試它?堅強我不確定你可以用於邊緣情況... – 2010-09-17 00:04:31

回答

1

我想這證明意味着什麼時間是無效的:我的電腦上

DateTime now = DateTime.Now; 
for (DateTime dt = now; dt < now.AddYears(1); dt += TimeSpan.FromMinutes(30)) 
{ 
    DateTime dt2 = dt.ToUniversalTime().ToLocalTime(); // dt2 == dt ? 
    if (dt2 != dt) 
    { 
     Console.WriteLine("Not equal: {0}, {1}", dt, dt2); 
    } 
} 

結果(你可能會得到不同的結果):

 
Not equal: 27-03-2011 02:26:28, 27-03-2011 03:26:28 
Not equal: 27-03-2011 02:56:28, 27-03-2011 03:56:28 

的時間「27-03- 2011 02:26:28「是無效的,因爲它們不存在,因爲時鐘向前移動了一個小時,導致該時間被跳過。

相關問題