将NSString(2011-04-18 18:57:47.453000)转换为NSDate

时间:2011-04-19 07:44:54

标签: nsdate

嘿,伙计们,我搜索了很多,但不能让我的代码工作。

我收到一个字符串形式的日期,格式如:2011-04-18 18:57:47.453000

我想将此转换为NSDate来计算已用时间,但我似乎无法正确转换。这就是我在做的事情:

NSString *dateString = [entityData objectForKey:@"creation_time"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.fff"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
[dateFormatter release];

当我打印dateString时,我得到:2011-04-18 18:57:47.453000 但是打印dateFromString给出:(null)

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:5)

你可能在一段时间之前解决了这个问题......但是:

NSString *dateString = @"2011-04-18 18:57:47.453000";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone: [NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSSSSS"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [df dateFromString:dateString];
[df release];

有关转换日期组件的一些有用信息,请参见此处的“日期字段符号表”:

http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns