如何更改日期/时间的格式?

时间:2010-05-20 05:19:03

标签: iphone objective-c cocoa-touch nsdateformatter

我有这个日期和时间格式:

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 个答案:

答案 0 :(得分:2)

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

如果您真的希望格式字符串中的字符不在表格中,您可以将它们转义为hh 'o''clock' a, zzzz - 生成格式如“下午12点,太平洋夏令时”。

答案 1 :(得分:0)

  

如果时间和日期可以作为单独的属性出现,那将是很好的,所以我可以按照我喜欢的方式安排它们。关于如何更改格式的任何想法?

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

相关问题