1. python中datetime怎么设置时区
如果你的程序要考虑时区,可以使用pytz。datetime模块中有tzinfo相关的东西,但是它是一个抽象类,文档上说:
tzinfo is an abstract base clase, meaning that this class should not be instantiated directly. You need to derive a concrete subclass, and (at least) supply implementations of the standard tzinfo methods needed by the datetimemethods you use. The datetime mole does not supply any concrete subclasses of tzinfo.
上面是说tzinfo是一个抽象类,不应该被直接实例化。你需要派生子类,提供相应的标准方法。datetime模块并不提供tzinfo的任何子类。
所以你可能会使用pytz这个模块。通过easy_install可以安装。目前它的最新文档在这里。
关于时区使用的几点想法:
1. 如果你的网站可能有来自其它时区的,可能你要考虑这个问题。都是一个地区的话,还要看服务器是否与用户在一个地区,如果不在,也要考虑。
2. 因此,基本上要考虑服务器时区与用户时区。服务器时区可以配置在系统中,全局生效。而用户时区则与用户相关,可以由用户自已进行设置。
3. 在生成相关时间对象时要加入时区的信息,并在输出时进行合适的转换。
而pytz提供了创建某个时区对象的方法,如,中国时区:
>>> import pytz
>>> pytz.country_timezones('cn')
['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']
可以看到,中国的时区可能有:'Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing',最后两个不知道是什么。我们可能使用的'Asia/Shanghai'比较多。
因此可以创建一个时区对象:
>>> tz = pytz.timezone('Asia/Shanghai')
然后在创建时间对象时进行指定:
>>> import datetime
>>> datetime.datetime.now(tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)
>>> datetime.date(2009, 2, 21, tzinfo=tz)
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
TypeError: 'tzinfo' is an invalid keyword argument for this function
>>> datetime.time(15, 12, 33, tzinfo=tz)
datetime.time(15, 12, 33, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)
从上面可以看出now(), datetime(), time()都是可以指定tzinfo信息的,而date是不行的,不知道为什么。所以最好的方法是内部使用datetime对象,需要时进行时区转换,然后再输出。
时区转换:
>>> utc = pytz.utc
>>> n = datetime.datetime.now(tz)
>>> n
datetime.datetime(2009, 2, 21, 15, 16, 41, 843000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> new = n.astimezone(utc)
>>> new
datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=<UTC>)
>>> utc.normalize(n.astimezone(utc))
datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=<UTC>)
2. 用python写个程序,能显示不同时区的时间(无第三方模块),求高手解答
importtime
defztime(t,z):#t:时间戳,z:时区,参数格式为zls的key
#以下时区列表参考维基网络http://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA%E5%88%97%E8%A1%A8
zls={'0':0,
'-12':-12,
'-11':-11,
'-10':-10,
'-9:30':-9.5,
'-9':-9,
'-8':-8,
'-7':-7,
'-6':-6,
'-5':-5,
'-4:30':-4.5,
'-4':-4,
'-3:30':-3.5,
'-3':-3,
'-2':-2,
'-1':-1,
'1':1,
'2':2,
'3':3,
'3:30':3.5,
'4':4,
'4:30':4.5,
'5':5,
'5:30':5.5,
'5:45':5.75,
'6':6,
'6:30':6.5,
'7':7,
'8':8,
'9':9,
'9:30':9.5,
'10':10,
'10:30':10.5,
'11':11,
'11:30':11.5,
'12':12,
'12:45':12.75,
'13':13,
'14':14}
t2=time.localtime(t+3600*zls[z])#在时间戳t上加减各时区对应时长(注:标准时间戳为GMT时间),当前时间的t值为time.mktime(time.gmtime())
returntime.strftime('%Y-%m-%d%H:%M:%S',t2)
printztime(time.mktime(time.gmtime()),'-12')#例:-12时区的当前时间
printztime(time.mktime(time.gmtime()),'12:45')#例:+12:45时区的当前时间
printztime(time.mktime(time.gmtime()),'8')#例:北京时间
printztime(time.mktime(time.gmtime()),'0')#例:格林尼治时间
3. python 获取系统时间有问题(时区)
确保系统时区设置正确。date命令显示的是本地时间。
然后 python datetime.now() 默认就是本地时间。
>>>importdatetime
>>>datetime.datetime.now()
datetime.datetime(2016,8,5,16,51,52,67275)
>>>print(datetime.datetime.now())
2016-08-0516:51:59.972713
>>>
4. gtime python中localtime和gtime的区别及时区计算
这是对的,差异在于我们是东八区。 一个是标准时间,一个是本地时间。 中国地区时区是+8,time可以得到东八区的时间,gmtime得到的是标准时间。
5. python3.10和3.7的区别
在 Python 3.9 中创建了一个名为 zoneinfo 的新模块,通过此模块,您可以访问 IANA 或互联网号码分配机构时区数据库,默认情况下,此模块使用系统的本地时区数据,但是3.7就并没有这个模块,导致在默认情况下并不能系统的显示出本地的具体数据。对于3.7来说也有其有点,在于Python 3.97增加了另一个很酷的功能,引起了很多关注,Python 3.7现在可以使用运算符合并或更新字典。
新的运算符 ie ( | ) 和 ( |= ) 已添加到 Python 3.7内置 dict 类中,您可以使用类似于下面标记的代码访问这些运算符以合并或更新字典。
使用 Python 3.7中添加的新功能可以更轻松地解决字符串处理问题,下面标记的代码用于从示例字符串中去除前缀和后缀。
removeprefix这个方法根据它的功能恰当地命名,它是去除给定样本字符串中存在的前缀,removesuffix此方法从传递给它的实例字符串中删除现有的后缀。
由于程序员对其缺陷性质的负面评价,创建了这些新方法来替换旧的 strip方法,下面标记的是一个示例代码,可以帮助您了解这两种新方法的实现,以上就是二者之间的区别。
6. python中datetime中now和utcnow的区别
utc时间是0时区的时间,now返回的时间是本地时区的时间。
当然,这一切都依赖于你系统设置的时区
7. pythonmktime 函数 时区
这个问题得分成几个子问题
1 数据库本身的时区
2 数据库里数据的时区
3 python代码里的时区
首先对1你可以通过命令去设置数据库的时区 像mysql直接用sql语句就能设置
其次对2 在存储时间时尽量用timestamp去存储 这样读出来可以方便的转成所需用的时区的时间
3 python自己的时区 比如你用datetime生成时间时需要每次都记得时区设置 在django和flask里设置好默认时区
做好这三点才能保证程序和数据库和数据的时区保持统一
8. 怎么用python直接更改Windows系统时区
请执行以下python代码,看看能不能更改windows系统时区。
importos
os.system("tzutil/s"CentralStandardTime"");#CentralStandardTime为时区
来自:网页链接
9. python中datetime怎么设置时区
1、默认情况下,pandas中的时间序列是单纯(naive)的时区,其索引的tz字段为None。
10. python3.9和3.10区别是什么
Python3.9:
1、IANA时区数据库:
在Python3.9中创建了一个名为zoneinfo的新模块,通过这个模块,可以访问IANA或互联网号码分配机构时区数据库,默认情况下,此模块使用系统的本地时区数据。
2、合并和更新字典的函数:
3.9增加了一个很棒的功能,现在可以使用运算符合并或更新字典,新的运算符|和|=已添加到内置dict类中,可以使用一定的代码访问这些运算符以合并或更新字典。
3、删除前缀和后缀:
使用Python3.9中添加的新功能可以更轻松地解决字符串处理问题,removeprefix可以去除给定字符串中存在的前缀,removesuffix用于传递给它的示例字符串中删除现有的后缀。
Python3.9启用了对所有标准集合的通用语法的支持功能,这些功能目前在输入模块中可用。
Python3.10:
1、改进的语法错误信息:
大量程序员在错误匹配和调试代码方面面临困难,3.10添加了一个对用户非常友好的特性,称为关联建议,它带有语法错误信息标记,有助于使用者快速找到其中存在的错误或错误的代码的修复程序。
2、更好的类型提示:
从3.9开始,可以不适用union关键字而只使用OR符号来匹配参数的多种输入类型,为同一个变量定义多个输入类型是一个更简单的方法。
改进的上下文管理器,更有助于处理文件等资源,现在可以在单个块中使用多个上下文,也能大大增强代码,不再需要多个块或语句。
老男孩IT教育针对企业用人需求专门设置定制化Python课程,学员无基础也可以学习,所有课程都是老师团队研发成立,引用了大型企业项目实战教学,全程采用七位一体授课模式,让学员边学边积累经验。