将NSDate转换为另一种格式

时间:2015-11-08 14:51:09

标签: ios objective-c nsdate

我有一个NSDate,它记录到控制台(在我的机器上使用我的设置),如下所示:

2015-12-30 18:10:27 +0000

如何将其转换为可以存储在这样的远程服务器上的字符串?

2015-12-30 18:10:27

由于服务器必须为多个客户端提供服务,因此其上的日期始终采用一致的格式非常重要。

我的理解是NSFormatter使用因客户端而异的本地设置,因此我不能依赖它来始终提供相同的字符串格式以便在服务器上保存,因此我不知所措:

这是我到目前为止的代码:

    NSDate *date = self.datePicker.date;
    NSLog(@"date is:%@",date); //logs as above => 2015-12-30 18:10:27 +0000
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSString *datestring = [dateFormatter stringFromDate:date];
NSLog(@"datestring%@",datestring); //logs => 2015-12-30T13:10:27.000Z

这不是我想要的,我也不相信这将始终在不同的手持设备上创建相同的格式以便在服务器上保存。

感谢任何建议。

1 个答案:

答案 0 :(得分:2)

您可以使用UNIX时间戳:

NSString *timestamp = [NSString stringWithFormat:@"%f",[date timeIntervalSince1970] * 1000];

或者您可以设置NSDateFormatter的自定义日期格式:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
NSString *datestring = [dateFormatter stringFromDate:date];