更改日期格式时出错日期

时间:2015-01-21 08:59:05

标签: ios ios7 ios8 nsdate nsdateformatter

我在更改日期格式时遇到错误的日期,我正在使用以下代码

NSDateFormatter * formatter =  [[NSDateFormatter alloc] init];

[formatter setDateFormat:@"MMM dd, YYYY"];

NSDate * theDate = [NSDate dateWithTimeIntervalSince1970:1419929948.7490001];

NSString * dateStr = [formatter stringFromDate:theDate];

输出 -

theDate is : 2014-12-30 08:59:08 +0000
dateStr is : Dec 30, 2015

由于

4 个答案:

答案 0 :(得分:3)

您希望使用yyyy代替YYYY。小y是日历年,而大写Y是"年中的一年"。

以下是the specification的解释。

  

F.4周的年度

     

为公历日历计算的年周数字段的值范围为1到53(对于其他日历,它们可能具有不同的范围)。一年的第1周是至少包含该年度的指定最小天数的第一周。一年的第1周和下一年的第1周之间的周数从2到52或53(如果需要)顺序编号。例如,1998年1月1日是星期四。如果一周的第一天是星期一,一周的最短天数是4(这些是反映ISO 8601和许多国家标准的值),那么1998年第1周开始于1997年12月29日,并于1月4日结束,但是,如果一周的第一天是星期日,那么1998年第1周开始于1998年1月4日,并于1998年1月10日结束。1998年的前三天是1997年第53周的一部分。 / p>

答案 1 :(得分:1)

更改以下行代码。

[formatter setDateFormat:@"MMM dd, yyyy"];

输出是:

enter image description here

答案 2 :(得分:1)

使用以下行

[formatter setDateFormat:@" MMM dd,yyyy"];

答案 3 :(得分:0)

按类别

+ (NSString *)dateStampFromDate:(NSDate *)date
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MMM dd, yyyy"];
    NSString *timeStamp = [dateFormatter stringFromDate:date];
    return timeStamp;
}