РЕДАКТИРОВАТЬ: В основном, я хочу сделать это, в UTC-время, в идеале через ISO-8601:
- Python: datetime.datetime ---> строка ISO-8601
- Python: строка ISO-8601 ---> datetime.datetime
- Obj-C: NSDate ---> ISO-8601 NSString
- Obj-C: ISO-8601 NSString ---> NSDate
Кажется, это должно быть действительно просто, но я не могу понять это.
Python-код, преобразование в строку:
>>> import datetime
>>> datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S %z")
'2012-03-08 00:07:31 '
Обратите внимание, что информация о часовом поясе %z
печатается в виде пустой строки, поскольку utcnow () возвращает наивный объект даты и времени. Как мне превратить его в осведомленный и заставить его напечатать, как показано ниже?
'2012-03-08 00:07:31 +0000'
На стороне Obj-C вещей:
// This fails and prints (null) since the timezone is missing.
NSString *pythonDate1 = @"2012-03-07 23:51:58 ";
NSDate *objCDate1 = [NSDate dateWithString:pythonDate1];
NSLog(@"%@", objCDate1);
// This works, manually adding in the "+0000".
NSString *pythonDate2 = @"2012-03-07 23:51:58 +0000";
NSDate *objCDate2 = [NSDate dateWithString:pythonDate2];
NSLog(@"%@", objCDate2);
Распечатка:
2012-03-07 19:14:47.848 Untitled 3[3912:707] (null)
2012-03-07 19:14:47.849 Untitled 3[3912:707] 2012-03-07 23:51:58 +0000
Я не совсем уверен, как вернуться от NSDate к объекту datetime.datetime. Любая помощь с благодарностью! :)