2014-05-17 59 views
0

无论用户是否正确设置其Windows操作系统日期和时间,如何获得正确的UTM时间?确定正确的时间

我已经做了一些测试,我将Windows时钟设置为不同的时间并运行完全相同的代码。每次输出Windows时钟时间。我正在寻找代码来始终输出正确的UTM时间。

代码:

from datetime import datetime 
from time import time 

print time() 
print datetime.utcnow() 
+0

http://stackoverflow.com/questions/12664295/ ntp-client-in-python – Pavel

+0

不打印datetime.utcnow()解决问题? –

+0

@ S.M.AlMamun不,它不喜欢我上面解释过的。尝试一下;运行我的代码,然后将您的Windows时间更改为2小时的不同,然后再次运行代码。它打印出2个不同的时间。所以datetime依靠windows来知道时间,然后将其转换为utc。 – Mack

回答

3

你想使用NTP模块:https://pypi.python.org/pypi/ntplib/

例如,从网站:

import ntplib 
from time import ctime 
c = ntplib.NTPClient() 
response = c.request('europe.pool.ntp.org', version=3) 
ctime(response.tx_time) 
+0

感谢您的答案。此解决方案是否要求用户连接到互联网?我想解决方案发布是'使用互联网来确定正确的时间'?有没有确定正确时间的地方方法? – Mack

+0

是的,你是对的。不幸的是,我不认为有一种方法可以在不使用互联网的情况下可靠地确定系统时间。 – gat

+0

@Mack:不,没有确定实际时间的本地方式。 (我无法想象你的想法可能会起作用......)除了互联网之外,当然还有其他可能的外部来源:手机网络,GPS等,但互联网是大多数计算机将支持的唯一一个。请记住,这些解决方案都不是万无一失的,确定的用户将能够绕过它们并为您提供错误的时间。 –