我在使用NSDateFormatter的iPhone应用程序中工作。我从"00:00:00", "16:00:00","15:30:00" and so on
这样的Web服务中获取时间。我需要将这些时间转换为如果时间是"00:00:00" to "12 AM"
,如果时间是"16:00:00" to "4 PM"
,如果时间是“15:30:00”到“3.30 PM”。我使用了下面的代码,但当我传递"16:00:00" the date returns null
时。
NSString *dats1 = @"16:00:00";
NSDateFormatter *dateFormatter3 = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter3 setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter3 setDateFormat:@"hh:mm:ss"];
NSDate *date1 = [dateFormatter3 dateFromString:dats1];
NSLog(@"date1 : %@", date1); **// Here returning (null)**
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm a"];
NSLog(@"Current Date: %@", [formatter stringFromDate:date1]); **// Here also returning (null)**
[formatter release];
当我通过“00:00:00”时,它正确地返回“12 AM”。有人能帮我解决这个问题吗?
8条答案
按热度按时间hwamh0ep1#
如果您的时间格式是
24hrs
,请使用"HH:mm:ss"
。请测试代码,并让我知道它是否为您工作。我已经测试,它返回"4 PM"
谢谢。
gijlo24d2#
您可以使用
.ShortStyle
,它将适应当前的语言环境:它根据当前设备区域设置返回
17:12
或5:12 PM
。b5lpy0ml3#
为什么再次分配
NSDateFormatter
?你只需要把它格式化为
NSDate
然后再格式化为NSString
qmelpv7a4#
尝试
HH:mm:ss
(注意小时格式的大写字母)wnavrhmk5#
希望有人会有帮助谁想得到它在斯威夫特
SWIFT 5.1+
hs1ihplo6#
以下代码始终保持12小时格式:
这始终保持在24小时格式
yquaqz187#
日期格式应为:
检查日期格式模式Doku
smdnsysy8#
雨燕5: