我在使用NSDateFormatter的iPhone应用程序中工作。我从"00:00:00", "16:00:00","15:30:00" and so on这样的网络服务上得到了时间。我需要转换这些时间,如果时间是"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”。有谁能帮我解决这个问题吗?提前谢谢。
发布于 2012-07-23 15:40:14
如果您的时间格式为24hrs,请使用"HH:mm:ss"格式。请测试代码,并让我知道,如果它是你的工作。我已经测试过了,它返回"4 PM"
NSString *dats1 = @"16:00:00";
 NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
 [dateFormatter3 setDateStyle:NSDateFormatterMediumStyle];  
 [dateFormatter3 setDateFormat:@"HH:mm:ss"]; 
 NSDate *date1 = [dateFormatter3 dateFromString:dats1];
 NSLog(@"date1 : %@", date1); **// Here returning (null)**
 [dateFormatter setDateFormat:@"hh:mm a"];
 NSLog(@"Current Date: %@", [formatter stringFromDate:date1]); **// Here also returning (null)**
 [formatter release];谢谢。
发布于 2016-01-20 22:48:28
您可以使用将适应当前区域设置的.ShortStyle:
let timeFormatter = NSDateFormatter()
timeFormatter.dateStyle = .NoStyle
timeFormatter.timeStyle = .ShortStyle
timeFormatter.stringFromDate(NSDate())根据当前设备区域设置返回17:12或5:12 PM。
发布于 2012-07-23 15:39:57
为什么你又要分配NSDateFormatter?
您只需将其格式化为NSDate,然后再格式化为NSString,
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:@"HH:mm:ss"];
    NSDate *date = [dateFormatter dateFromString:dats1];
    [dateFormatter setDateFormat:@"hh:mm a"];
    NSString *formattedDate = [dateFormatter stringFromDate:date];
    NSLog(@"%@",formattedDate);https://stackoverflow.com/questions/11608133
复制相似问题