2011-11-15 162 views
0

我正在解析iPhone上的KML文件,我需要知道KML文件中该字符串的时间格式是:2011-05-16T08:00:59ZKML文件中使用的时间格式是什么?

我认为这是沿着以下几行的某处,但我不知道Z代表什么:YYYY-MM-ddTHH:mm:ss

谢谢先进。

XcodeDev

回答

1

这是ISO 8601Z代表Zulu time,也称为UTC或GMT,即+0时区。

+1

谢谢,但我用什么字母,Z?我尝试了以下方法,但不起作用 - 'YYYY-MM-DDThh:mm:ssZ'。 –

+0

@XcodeDev如果时间的时区是UTC,那么'Z'是正确的字母。如果它不是UTC,最简单的方法就是计算等效的UTC时间。或者,您[可以添加时间偏移量](http://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC)。你能澄清一下吗?它不起作用?你的程序目前输出了什么,以及如何检测到它不起作用? – phihag

0

我用这个在Python转换Django的对象为KML时间戳(请注意时间戳大写的S - 抛出我一会儿):

from datetime import datetime 
from pytz import timezone 

# Access the Date Time of the created object 
dtg = str(loc.created_at) 

# Import the Django timestamp (which includes miliseconds) 
datetime_obj = datetime.strptime(dtg, "%Y-%m-%d %H:%M:%S.%f+00:00") 
# Convert it to UTC Format 
datetime_obj_utc = datetime_obj.replace(tzinfo=timezone('UTC')) 

# Convert it to Zulu time 
date_time = datetime_obj_utc.strftime('%Y-%m-%dT%H:%M:%SZ') 

# Build the KML output 
output += ' <Placemark><name>Feature</name>\n' 
output += '  <TimeStamp><when>'+date_time+'</when></TimeStamp>\n' 
...