我无法在我的应用中显示正确的日期。当用户在其日期时间首选项中设置24小时格式“开启”时,我的应用程序显示正确的时间,但是当24小时格式设置为“关闭”时,它什么都不显示。
以下是我正在使用的代码:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:style];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *temp = [formatter dateFromString:strDate];
[formatter setDateFormat:format];
[formatter setLocale:[NSLocale currentLocale]];
NSString *returnStr = [formatter stringFromDate: temp];
[formatter release];
NSLog(@"Return: %@", returnStr);
return returnStr;
答案 0 :(得分:46)
试试这个
[dateFormat setDateFormat:@"hh:mm:ss"];
HH :24小时格式
hh :12小时格式
所以在你的情况下
//after conversion to date
if ON
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
if OFF
[formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
答案 1 :(得分:30)
12小时:(hh:mm:ss)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
24小时:(HH:mm:ss)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
答案 2 :(得分:14)
使用它:
目标C:
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
Swift 4.1
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
之后,您的日期不会被修改。
答案 3 :(得分:5)
设置dateFormatter的语言环境,如下所示。它应该能解决你的问题。
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
答案 4 :(得分:1)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm"];
NSString *dateString = [dateFormat stringFromDate:[NSDate date]];