我需要将Cocoa NSDate
转换为C# DateTime
,反之亦然。Xamarin的'iOS基金会NSDate到C#日期时间转换',反之亦然,不考虑DayLight保存
我使用下面的方法来实现这一目标:
public static DateTime NSDateToDateTime (Foundation.NSDate date)
{
DateTime reference = TimeZone.CurrentTimeZone.ToLocalTime (
new DateTime (2001, 1, 1, 0, 0, 0));
return reference.AddSeconds (date.SecondsSinceReferenceDate);
}
public static Foundation.NSDate DateTimeToNSDate (DateTime date)
{
DateTime reference = TimeZone.CurrentTimeZone.ToLocalTime (
new DateTime (2001, 1, 1, 0, 0, 0));
return Foundation.NSDate.FromTimeIntervalSinceReferenceDate (
(date - reference).TotalSeconds);
}
但事实证明,这种方式是不占夏令。
例如, DateTime
DST中时间为5AM的对象在时间6AM返回NSDate
。
我觉得这是一个过时的方法,请看我的答案 –