編輯:基本上,我要做到這一點,在UTC時間,最好通過ISO-8601:如何將Python datetime.datetime.utctime()轉換爲Obj-C NSDate並返回?
- 的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()返回一個幼稚 DateTime對象。我怎麼把它變成知道之一,並讓它打印如下?
'2012-03-08 00:07:31 +0000'
對事物的對象 - 側:
// 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對象。任何幫助是極大的讚賞! :)
它看起來並不嚴格地支持它,但只有部分。它不喜歡'Z',但它會接受'+ 0000'和'+00:00'。 – 2012-03-09 02:53:45
同樣,如果你只能通過Obj-C utc時間,你可以作弊並提供+00:00。否則,我想你將不得不使用pytz,就像Phil提到的一樣。 – monkut 2012-03-09 04:12:48