NSDate *now = [[NSDate alloc] init];

给出当前日期。

但是,如果手机日历不是公历(在模拟器上也有日文和佛历),则当前日期不会是公历。

现在的问题是如何转换为公历日期或确保它从一开始就是公历格式。这对于某些服务器通信至关重要。

谢谢!

最佳答案

NSDate 只是代表一个时间点,本身没有格式。

将NSDate格式化为一个字符串,你应该使用 NSDateFormatter。它有一个日历属性,如果您将此属性设置为公历的实例,则输出的格式将匹配公历样式。

NSDate *now = [NSDate date];

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setCalendar:gregorianCalendar];
[formatter setDateStyle:NSDateFormatterFullStyle];
[formatter setTimeStyle:NSDateFormatterFullStyle];

NSString *formattedDate = [formatter stringFromDate:now];

NSLog(@"%@", formattedDate);

[gregorianCalendar release];
[formatter release];

关于objective-c - 当电话日历不是公历时,如何以公历格式获取今天的日期?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6355405/

10-10 20:45