在項目開發中很多情況下並不是對日期直接進行儲存,而是儲存成unix時間戳記進行儲存,這樣的好處是能僅用一個long型的數字就可以進行儲存,節省空間的。既然有此需求,那麼就需要在unix時間戳記和datetime之間進行轉換,在windows phone中,微軟提供了timezoneinfo類,該類能很好的實現這一點。
下面是一個對時間格式進行相互轉換的類,其中提供了四個函數處理時間轉換,用起來很是舒服:
using System;namespace Utilities{public class UnixTimestampConverter{public static readonly DateTime UnixTimestampLocalZero = System.TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc), TimeZoneInfo.Local);public static readonly DateTime UnixTimestampUtcZero = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);public static long ConvertLocalToTimestamp(DateTime datetime){return (long)(datetime - UnixTimestampLocalZero).TotalMilliseconds;}public static long ConvertUtcToTimestamp(DateTime datetime){return (long)(datetime - UnixTimestampUtcZero).TotalMilliseconds;}public static DateTime ConvertLocalFromTimestamp(long timestamp){return UnixTimestampLocalZero.AddMilliseconds(timestamp);}public static DateTime ConvertUtcFromTimestamp(long timestamp){return UnixTimestampUtcZero.AddMilliseconds(timestamp);}}}