Gop*_*ath 53 iphone time nsdateformatter ios
我正在使用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".有谁可以帮我解决这个问题?提前致谢.
Yuv*_*j.M 113
如果您的时间格式是24hrs请使用"HH:mm:ss"格式.请测试代码并告诉我它是否适合您.我已经测试过,它正在返回"4 PM" 
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];
谢谢.
eli*_*ocs 22
您可以使用.ShortStyle适应当前区域设置的:
let timeFormatter = NSDateFormatter()
timeFormatter.dateStyle = .NoStyle
timeFormatter.timeStyle = .ShortStyle
timeFormatter.stringFromDate(NSDate())
哪个返回17:12或5:12 PM取决于当前设备区域设置.
Cha*_*ran 15
你为什么再次分配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);
希望有人愿意在Swift中获得它
对于斯威夫特
let dateFormatter = NSDateFormatter()
//if some one want 12AM,5PM then use "hh mm a"
//if some one want 00AM,17PM then use "HH mm a"
dateFormatter.dateFormat = "hh mm a"
let stringDate = dateFormatter.stringFromDate(NSDate())
println(stringDate)
小智 8
以下代码始终保持12小时格式:
NSLocale *12hourFomrat = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
df.locale = 12hourFomrat;
这始终保持24小时格式
NSLocale *24hourFormat = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
df.locale = 24hourFormat
| 归档时间: | 
 | 
| 查看次数: | 77511 次 | 
| 最近记录: |