如何使用iPhone SDK将TimeStyle AM/PM设置为小写

如何使用iPhone SDK将TimeStyle AM/PM设置为小写,iphone,datetime,formatting,Iphone,Datetime,Formatting,如何将AM/PM时间样式设置为小写?我正在使用以下代码,根据苹果的文档,这应该以小写形式返回这些值,但它没有 [_detailsTimeFormatter setTimeStyle:NSDateFormatterShortStyle]; 我不知道为什么苹果的示例显示am/PM是小写的,但很容易将日期字符串改为小写: NSDateFormatter *detailsTimeFormatter = [[NSDateFormatter alloc] init]; [detailsTimeFormat

如何将AM/PM时间样式设置为小写?我正在使用以下代码,根据苹果的文档,这应该以小写形式返回这些值,但它没有

[_detailsTimeFormatter setTimeStyle:NSDateFormatterShortStyle];

我不知道为什么苹果的示例显示am/PM是小写的,但很容易将日期字符串改为小写:

NSDateFormatter *detailsTimeFormatter = [[NSDateFormatter alloc] init];
[detailsTimeFormatter setTimeStyle:NSDateFormatterShortStyle];
NSLog(@"%@",[[detailsTimeFormatter stringFromDate:[NSDate date]] lowercaseString]);

您可以按如下方式更改NSDateFormatter上的AM和PM符号:

[dateFormatter setAMSymbol:@"am"];
[dateFormatter setPMSymbol:@"pm"];
或使用Swift:

formatter.amSymbol = "am"
formatter.pmSymbol = "pm"

谢谢,它工作得很好。奇怪的是,文档显示了错误的输出。我还发现,在12小时模式下,在下午1:49的一小时前有一个前导零。令人恼火的是,我还不知道如何移除它。它似乎与设备系统设置有关,因为顶部的时钟是相同的,它不在模拟器上。@Jim,有点晚了,但如果要设置自定义日期格式(尽管有点不鼓励),例如:
date.dateFormat=@“h:mm a”
你会自动得到小时的一位数或两位数。这很古老,但你认为有没有办法去除
h:mm
a
之间的空格,并使用
NSDateFormatter
保持小写的am/pm?Tom,我也无法理解这一点,所以我只是像这样手动执行:
result=[result stringByReplacingOccurrencesOfString:@“PM”with string:@“PM”];结果=[result stringByReplacingOccurrencesOfString:@“AM”和字符串:@“AM”]
@arigold-你有没有遇到问题的代码?我删除了评论-我在搜索中发布了它,然后才意识到字体没有任何小写字母。不过,感谢你的登录。选择的答案似乎比这更好,可以让格式化程序随心所欲。在亚洲语言中,虽然可以理解“am”/“pm”,但可能会使用不同的字符。因此,另一种方法是在本地化时,让苹果想放的任何东西都作为AM/PM。因此,选择的是一个更稳健的选择,如果这样的事情现在或将来实现…@AndresCanella如果特别是AM/PM需要小写(如问题中所问),那么,考虑到您的观点,更好的解决方案是从日期格式化程序请求AM/PM符号,将其小写,然后使用它来设置符号。使用被接受的答案,你可以把你不想做的事情小写。当然,这完全取决于格式化程序在做什么。@michaelslater这是个好主意。