Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
380 views
in Technique[技术] by (71.8m points)

nsdate - stringFromDate returning the wrong year

#define stdDateFormat @"YYYYMMdd'T'hh:mm:ssZ"
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:stdDateFormat];
NSString *TimeOfSync = [dateFormat stringFromDate:syncDate];
NSLog(@"date format: %@",stdDateFormat);
NSLog(@"syncDate: %@",syncDate);
NSLog(@"TimeOfSync: %@",TimeOfSync);

Logged output:

date format: YYYYMMdd'T'hh:mm:ssZ
syncDate: 2009-01-03 19:00:00 +0000
TimeOfSync: 20080103T11:00:00-0800

Can anyone help? The only thing I can see is the extra space just before the timezone in the input date string. Thanks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Use lowercase yyyy for the year instead of YYYY.

Uppercase Y means the year of the start of the week the date is in (Jan 3, 2009 is in a week that starts in 2008).

See Unicode Date Format Patterns.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...