Xamarin.MacのNSDateとDateTimeを相互変換する

提供: MonoBook
2017年10月31日 (火) 08:53時点におけるimported>Administratorによる版 (ページの作成:「Xamarin公式サイトのフォーラムにあった。 * https://forums.xamarin.com/discussion/27184/convert-nsdate-to-datetime <source lang="csharp"> public static...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Xamarin公式サイトのフォーラムにあった。

    public static class NSDateExtensions
    {
        static readonly DateTime reference = new DateTime(2001, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

        public static DateTime ToDateTime(this NSDate date)
        {
            var utcDateTime = reference.AddSeconds(date.SecondsSinceReferenceDate);
            var dateTime = utcDateTime.ToLocalTime();
            return dateTime;
        }

        public static NSDate ToNSDate(this DateTime datetime)
        {
            var utcDateTime = datetime.ToUniversalTime();
            var date = NSDate.FromTimeIntervalSinceReferenceDate((utcDateTime - reference).TotalSeconds);
            return date;
        }
    }