如何获取上午/下午格式的时间iphone NSDateFormatter?
我正在使用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”。 任何人都可以请帮我解决这个问题? 提前致谢。
如果您的时间格式在24hrs
请使用"HH:mm:ss"
格式。 请testing代码,让我知道它是否为你工作。 我已经testing,它正在返回"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];
谢谢。
为什么你再次分配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);
试试HH:mm:ss
(注意小时格式的大写)
您可以使用适应当前语言环境的.ShortStyle
:
let timeFormatter = NSDateFormatter() timeFormatter.dateStyle = .NoStyle timeFormatter.timeStyle = .ShortStyle timeFormatter.stringFromDate(NSDate())
根据当前的设备区域设置, 17:12
返回17:12
或5:12 PM
。
以下代码始终保持12小时格式:
NSLocale *12hourFomrat = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; df.locale = 12hourFomrat;
这始终保持24小时制
NSLocale *24hourFormat = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"]; df.locale = 24hourFormat
希望有人能够帮助谁想要得到它在Swift中
对于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)
你的date格式应该是:
[dateFormatter3 setDateFormat:@"HH:mm:ss"];
检查date格式模式Doku