我的日期格式有问题
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY-MM-dd hh:mm:ssZZ"];
formatedDate =[format stringFromDate:datePicker.date];
一切都很好,除了一件事 当我将YEAR设置为小于或等于1924时,DateFormatter返回
1924-04-21 03:00:07+050748
应该是
1924-04-21 03:00:07+0500
出了什么问题?
答案 0 :(得分:1)
您可以看到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"。
答案 1 :(得分:0)
使用此方法.......
-(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;
}
答案 2 :(得分:-1)
您可以设置时区,与GMT一样,
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
。