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";

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

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

日期将为空。我想将最终结果放入一个 NSString 中。如果时间和日期可以作为单独的属性出现,那就太好了,这样我就可以随意安排它们了。关于如何更改格式的任何想法?

4

2 回答 2

2

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

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

于 2010-05-20T05:34:12.763 回答
0

如果时间和日期可以作为单独的属性出现,那就太好了,这样我就可以随意安排它们了。关于如何更改格式的任何想法?

你有事情倒退。如果这是要显示给用户的日期/时间,您需要以用户想要的方式呈现它,而不是您想要的方式。例如,美国以外的大多数人都会对 MM-dd-yyyy 感到困惑,特别是如果这一天不到 13 点。考虑使用-setDateStyle:-setTimeStyle:。这样,显示字符串将按照用户的期望出现。

于 2010-05-20T08:18:05.820 回答