是 - [NSCalendar组件:fromDate:]在MonoTouch中可用吗?

时间:2012-10-08 00:06:58

标签: objective-c xamarin.ios

我正在尝试将以下Objective-c代码转换为MonoTouch / C#,但我找不到NSCalendar.componentsFromDate()方法。看起来它没有在MonoTouch中实现。这是代码:

NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
                    [gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) 
                                 fromDate:today];
我是从Apple docs得到的;它需要考虑夏令时。 有关如何将上述代码转换为C#的任何建议?

2 个答案:

答案 0 :(得分:2)

答案实际上取决于你将如何处理结果,但如果你想在当前用户的语言环境中使用当前日期的日期和工作日,这是一种方法:

var now = DateTime.Now;
var day = now.Day;
var weekday = now.DayOfWeek;

更新:

如果你有NSDate,你可以这样做:

var dt = ((DateTime) theNSDate).ToLocalTime ();
var day = now.Day;
var weekday = now.DayOfWeek;

答案 1 :(得分:0)

使用DateTime.SpecifyKind使用UTC创建DateTime对象,或使用其中一个接受DateTimeKind作为参数的DateTime构造函数