rap*_*ell 5 python format date ntp
是否有可能将从NTP服务器(使用python脚本)检索的时间转换为此格式"Wed Jul 13 00:17:58 CEST 2011"到此格式"2011-07-13 00:18:10"
client = socket(AF_INET, SOCK_DGRAM)
data = '\x1b' + 47 * '\0'
client.sendto(data, (ntp.server.com,123))
data, address = client.recvfrom( 1024 )
if data:
utc_secs = struct.unpack('!12I', data)[10]
utc_secs -= 2208988800L
utc_secs = time.ctime(utc_secs)
print utc_secs
return utc_secs
Run Code Online (Sandbox Code Playgroud)
我得到这种格式:"Wed Jul 13 00:17:58 CEST 2011"
我想把它转换成这种格式"2011-07-13 00:17:58"('%Y-%m-%d%H:%M:%S')
谢谢 :)
根据您的情况,您可以直接从秒数转到您想要的时间格式;不过,我将在底部的案例的确切片段之前解释一般解决方案。
一般来说,此类问题可以借助strptime和strftime来解决。您还应该参考python 文档中的格式化代码。
strptime()匹配日期字符串的各个部分并创建 python 时间结构。strftime()然后可以用来将该时间结构转换为您想要的任何格式。
from datetime import datetime
ntp_time = datetime.strptime(time_str_from_ntp, "%a %b %y %H:%M:%S")
formatted_time = datetime.strftime(ntp_time, "%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
或者根据您的具体情况,您可以替换
utc_secs = time.ctime(utc_secs)
Run Code Online (Sandbox Code Playgroud)
with (注意:如果你还没有这样做,from datetime import datetime那么你应该使用datetime.datetime.fromtimestamp下面的而不是简单的datetime.fromtimestamp)
formatted_time = datetime.fromtimestamp(utc_secs).strftime("%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2365 次 |
| 最近记录: |