我对日期格式有问题
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY-MM-dd hh:mm:ssZZ"];
formatedDate =[format stringFromDate:datePicker.date];
一切正常,除了一件事当我将 YEAR 设置为小于或等于 1924 年时,日期格式化程序返回
1924-04-21 03:00:07+050748
而应该是
1924-04-21 03:00:07+0500
怎么了?
您可以查看 Apple 数据格式化指南 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html在"固定格式"中,关于此示例,有两点需要注意:
它使用 yyyy 指定年份组件。一个常见的错误是使用 YYYY。yyyy 指定日历年,而 YYYY 指定 ISO 年-周日历中使用的年份("一年中的一周")。在大多数情况下,yyyy 和 YYYY 产生相同的数字,但它们可能不同。通常,您应该使用日历年。时间的表示可能是13:00。但是,在 iOS 中,如果用户已将"24 小时制"切换为"关闭",则时间可能是下午 1:00。
因此,您应该将"YYYY"更改为"yyyy"。
用户此方法 .......
-(NSString*) currentDateForServer
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:UTC];
[dateFormat setTimeZone:timeZone];
[dateFormat setDateFormat:DATE_FORMATE];
NSDate *currentDate = [NSDate date];
NSString *finalString = [dateFormat stringFromDate:currentDate];
return finalString;
}
- 根据需要定义 UTC 和DATE_FORMATE
您可以设置时区,就像使用格林威治标准时间一样,
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"yyyy-MM-dd hh:mm:ssZZ"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[format setTimeZone:gmt];
formatedDate =[format stringFromDate:datePicker.date];
这可能会更改您在输出字符串formatedDate
中的时间,但您可以根据需要设置NSTimeZone
。