使用NSDateFormatter时出错

时间:2013-05-08 06:18:17

标签: iphone ios nsdate nsdateformatter

当我

[dateFormatter setDateFormat:@"HH:mm"]

用于获取当前小时 我得到正确的时间直到12:59但之后又从1点开始,即12:59显示为12:59但是14:00显示为2:00。

如果有人遇到类似问题并请提出解决方案,请告诉我。

由于

6 个答案:

答案 0 :(得分:3)

请检查以下代码。

    NSDateFormatter *dateFormator = [[NSDateFormatter alloc] init];
    dateFormator.dateStyle = NSDateFormatterMediumStyle;
    dateFormator.dateFormat=@"HH:mm:ss";
    NSCalendar * calender=[[NSCalendar alloc]initWithCalendarIdentifier:[NSGregorianCalendar autorelease]];
    NSDateComponents * component=[calender components:NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:date];

答案 1 :(得分:1)

我同意

[dateFormatter setDateFormat:@"HH:mm"]

应该给你24小时的时间。但是如果用户设置24小时关闭,这不起作用。尽管在格式字符串中使用HH,但用户设置会覆盖此字符串。这可能是您的问题!

答案 2 :(得分:0)

使用此

NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"YYYY-MM-dd kk:mm:ss"];
[dateFormatter setLocale:[NSLocale currentLocale]];

NSString *dateString = [dateFormatter stringFromDate:date];

答案 3 :(得分:0)

试试此代码

[dateFormatter setDateFormat:@"hh:mm:ss"];

HH:24小时格式

hh:12小时格式

所以在你的情况下

//转换为日期后

如果开启

[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];

如果关闭

[formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss a"];

希望它适合你。

答案 4 :(得分:0)

您可以使用

[dateFormatter setDateFormat:@"H:mm"]

24小时时间格式

答案 5 :(得分:0)

将日期格式设置为

[dateFormatter setDateformat:@"HH:MM a"];