2014-09-23 64 views
2

是否有可用的c#插件處理所有的moment.js時區。Moment.js時區轉換C#.NET

我很難比較後端的日期,因爲來自moment.js的時區與來自.net DateTime的時區不同。

我需要將時間轉換爲Utc,然後再比較不同的分時日期。 我正在使用nodatime,它能夠處理一些時區,但不是全部。

謝謝。

編輯: NodaTime處理大部分時區,但我仍然需要覆蓋縮寫。有沒有可用的東西?

謝謝。

+0

你可以將一個moment.js datetime轉換爲utc嗎?這可以解析nodatime - – 2014-09-23 06:48:28

+0

謝謝。我發現了nodatime,但我在處理時區縮寫時仍遇到問題。是否有其他方法通過縮寫來獲取時區?例如ACST =澳大利亞中部標準時間 – 2014-09-23 09:07:30

+0

您可以找到*所有*時區使用特定縮寫,但您最好避免使用縮寫。 moment.js不會爲您提供完整的IANA ID,例如歐洲/倫敦? – 2014-09-23 10:54:23

回答

1

因此,NodaTime處理了奧爾森時區以及GMT +,UTC和其他地區。對於縮寫,我用這個結算了

public static DateTimeZone GetTimeZone(string id) 
    { 
     DateTimeZone timezone = DateTimeZoneProviders.Tzdb.GetZoneOrNull(id); 

     if (timezone == null) { 
      var instant = Instant.FromDateTimeUtc(DateTime.UtcNow); 
      var source = DateTimeZoneProviders.Tzdb; 
      id = source.Ids.Where(i => source[i].GetZoneInterval(instant).Name == id).FirstOrDefault(); 
      timezone = DateTimeZoneProviders.Tzdb.GetZoneOrNull(id); 
     } 

     return timezone; 
    }