NSDate时间问题

时间:2015-04-23 08:29:20

标签: ios objective-c

我从服务器获得 2015-04-22 10:43:57 的值,但在转换为NSDate时遇到问题。我希望将NSDate转换为NSString中给出的相同格式。这是我的代码

// getting from server

NSString *dateString=@"2015-04-22 10:43:57"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *aDate = [dateFormat dateFromString:dateString]; 

如果我将使用timezone获取dateString,那么它将被解析。

3 个答案:

答案 0 :(得分:0)

您的代码看起来是正确的。 我想你在格式化时遇到了时区问题。你可以在你的NSDateFormatter中添加addnit来指定输入日期是否来自特定的时区

// set date format
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];

答案 1 :(得分:0)

请使用以下代码

NSString *dateString=@"2015-04-22 10:43:57";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSTimeZone* localTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
dateFormat.timeZone=localTimeZone;
NSDate *aDate = [dateFormat dateFromString:dateString];

OutPut: 2015-04-22 10:43:57 +0000

希望它可以帮助你......!

答案 2 :(得分:0)

您的代码是正确的。您只需尝试将此行添加到您的代码中。

//This will set time zone of your device.You can change systemTimeZone to localTimeZone based on your need.

[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];