2010-05-20 111 views
1

我有这样的日期和时间格式:如何更改日期/时间格式?

2010-05-19 07:53:30 

,并想将其更改为:

Wednesday @ 7:53PM 5/19/2010 

我这样做,它可以获取当前格式:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; 

但是当我改变格式时,我最终得到一个null。例如:

formatter.dateFormat = @"hh:mm tt MM-dd-yyyy"; 
date = [formatter stringFromDate:formattedDate]; 

日期将为空。我想把最终结果放到NSString中。如果时间和日期可以作为单独的属性出现,这将是很好的,所以我可以安排他们,但我喜欢。有关如何更改格式的任何想法?

回答

2

我认为你的格式化字符串是问题。您只能使用您在UTS#35 Date Format Patterns表中找到的字符。我试过了你的代码,当hh:mm显示正确时,格式化在tt处停止 - 不在表格中!

如果您确实需要格式字符串中不在表格中的字符,您可以将它们转义,如hh 'o''clock' a, zzzz - 生成“12点PM,太平洋夏令时”等格式。

0

如果时间和日期可以作为单独的属性出现,那么我可以安排它们,不过我喜欢它会很好。有关如何更改格式的任何想法?

你有事情倒退。如果这是要显示给用户的日期/时间,则需要向用户展示用户需要的方式,而不是您想要的方式。例如,美国以外的大多数人会被MM-dd-yyyy困惑,特别是如果日期少于13天。请考虑使用-setDateStyle:-setTimeStyle:。这样,显示字符串将按用户期望显示。