时间相关

NodeMCU没有内置的时间,只提供一个time.time()函数获取已经通电了多少秒:

import time
print(time.time())  # 结果会是类似42,意思是已经通电42秒

为此本框架内置了NTP对时系统,如果你使用WIFI函数连接了网络,框架会尝试自动进行NTP对时,如果一切正常,使用time.time()就可用获取当前的时间戳(由于MicroPython的设置,时间戳是从2000年开始的,不是Linux的1970年开始):

import time

WIFI('wifiname', 'wifipwd')
print(time.time())  # 结果会是类似527648123这样的数字,意思是当前时间与2000年1月1日0时所差的秒数。
print(time.localtime())  # 结果会是类似(2018, 4, 16, 15, 59, 03, 0, 106), 意思是2018年4月16日15:59:03,最后两位数0和106暂时没用

由于网络原因,即使WIFI连接了,NTP对时也可能失败,可用用如下代码手工对时:

if not ntp_ok():  # 检测ntp是否已经成功校准,已校准的话返回True,否则返回False
    set_ntp_time(tz=8)  # tz为时区,北京时区为正8区,所以tz=8,如果是-6区就写tz=-6