2013-08-30 61 views
3

我在我的应用程序,在这里我需要显示,仅在12 - hour format的格式,我已经使用这个代码显示dateNSDateFormatter不允许24小时格式

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:kDateDisplayFormat]; 
NSTimeZone *timeZone = [NSTimeZone systemTimeZone]; 
[dateFormatter setTimeZone:timeZone]; 
NSString *todaysDate = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:[NSDate date]]]; 
[[self lblPointsDate] setText:todaysDate]; 
显示 日期

在这里,当我将我的iPhone日期格式更改为24小时制时,它以24小时格式显示。我需要转换 24小时至12小时格式或使其只显示在12小时格式。我怎样才能做到这一点?

+3

请张贴你'kDateDisplayFormat',也是我建议从来没有使用静态格式,但使用'NSDateFormatterStyle' – rckoenes

+0

看到这么回答http://stackoverflow.com/问题/ 11139973 /如何转换24小时字符串时间到12小时时间字符串格式 – Deepesh

+0

#define kDateDisplayFormat @“dd.M.yyyy/hh a” –

回答

5

只需切换

kDateDisplayFormat.dateFormat = @"HH:mm a"; 

kDateDisplayFormat.dateFormat = @"hh:mm a"; 
+0

我只使用小”hh“ –

+0

非常简单的解决方案nic ... – TamilKing

2

虽然解决方案是使用12小时时间格式hh和不忒24小时HH格式为什么不能让用户系统偏好选择正确的格式:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateStyle = NSDateFormatterMediumStyle; 
dateFormatter.timeStyle = NSDateFormatterShortStyle; 

self.lblPointsDate.text = [dateFormatter stringFromDate:[NSDate date]] 

此外,没有必要将dateFormatter.timeZone设置为系统时区,这是默认设置。

+0

我需要我的自定义格式.. –

+0

您发布的dateFormat是正确的,可以发布在哪里打印日期和dateFormatter的结果? – rckoenes

0

尝试以下操作:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"hh:mm a" options:0 locale:[NSLocale currentLocale]]]; 
NSString *theTime = [dateFormatter stringFromDate:[NSDate date]];