问题描述
我试图了解.net如何处理夏时制。当我调用#...
nm = nmap.PortScanner()
nm.scan(hosts='192.168.1.0/24',arguments='-sP')
for ip in nm.all_hosts():
host = nm[ip]
mac = "-"
vendorName = "-"
if 'mac' in host['addresses']:
mac = host['addresses']['mac']
if mac in host['vendor']:
vendorName = host['vendor'][mac]
status = host['status']['state']
rHost = {'ip': ip,'mac': mac,'vendor': vendorName,'status': status}
print(rHost)
#...
方法并传递date实例时,它对于今天的日期返回true。如果我在同一日期实例上调用DateTime的IsDaylightSavingTime
方法,它将返回false。
为什么同一日期实例得到的结果不同?
IsDaylightSavingTime
这是link的小提琴。
解决方法
第一行打印True
,因为它正在打印太平洋时间是否处于夏令时。太平洋时间从2020年11月1日更改为标准时间,今天是9月21日,因此现在是夏令时。
第二行显示False
,因为它在您计算机所在的时区中都不夏令时。这是因为DateTime
的类型为Local
或{{1 }},DateTime.IsDaylightSavingTime
使用计算机的系统时区来确定其结果:
此方法确定当前的DateTime值是否在本地时区的夏令时范围内,该范围由
TimeZoneInfo.Local
属性返回。
本地时区是执行代码的计算机上的时区。
时区实际上不是Unspecified
的一部分,所以DateTime
不知道您希望它使用太平洋时间。