第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

難以理解時(shí)間轉(zhuǎn)換

難以理解時(shí)間轉(zhuǎn)換

紅顏莎娜 2021-08-17 18:15:15
我在理解 python 中的時(shí)間轉(zhuǎn)換時(shí)遇到了一些麻煩。我有兩個(gè)相同的time_struct對(duì)象In [22]: local_dtOut[22]: datetime.datetime(2000, 1, 1, 0, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)In [23]: local_dt.timetuple()                                                                                                                             Out[24]: time.struct_time(tm_year=2000, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=1, tm_isdst=0)當(dāng)我將它提供給time.mktime一臺(tái)機(jī)器上的功能時(shí)time.mktime(local_dt.timetuple())它返回 946681200.0在第二臺(tái)機(jī)器上,我得到了不同的答案In [31]: local_dt.timetuple()                                                                                                                             Out[31]: time.struct_time(tm_year=2000, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=1, tm_isdst=0)In [32]: time.mktime(local_dt.timetuple())                                                                                                                Out[32]: 946684800.0不過(guò),這些機(jī)器有不同的時(shí)區(qū):In [44]: time.tzname                                                                                                                                      Out[44]: ('Europe', 'Europe')In [45]: time.tznameOut[45]: ('CET', 'CEST')關(guān)于時(shí)間模塊的文檔說(shuō):使用以下函數(shù)在時(shí)間表示之間進(jìn)行轉(zhuǎn)換: struct_time 本地時(shí)間自紀(jì)元以來(lái)的秒數(shù) mktime()據(jù)我所知,我的當(dāng)?shù)貢r(shí)間是“美國(guó)/洛杉磯”,所以自紀(jì)元以來(lái)的秒數(shù)應(yīng)該完全相同,而不取決于系統(tǒng)配置。我有什么誤解?那么我該如何正確計(jì)算時(shí)間戳呢?
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

time.mktime()解釋timetuple基于本地計(jì)算機(jī)的時(shí)區(qū)。請(qǐng)注意您的timetuple對(duì)象如何不包含任何時(shí)區(qū)信息,因此創(chuàng)建的時(shí)間戳將始終根據(jù)本地計(jì)算機(jī)上設(shè)置的時(shí)區(qū)而變化。因此完全可以理解為什么time.mktime(local_dt.timetuple())在這兩臺(tái)機(jī)器上相同的返回不同的值。


您可以local_dt.timestamp()改用,而兩者本質(zhì)上是相同的...


datetime假設(shè)Naive實(shí)例表示本地時(shí)間,并且此方法依賴于平臺(tái) Cmktime()函數(shù)來(lái)執(zhí)行轉(zhuǎn)換。


...但是由于您是timestamp直接從非原始datetime對(duì)象創(chuàng)建的,它仍然保留時(shí)區(qū)信息并可以相應(yīng)地改變時(shí)間:


對(duì)于感知datetime實(shí)例,返回值計(jì)算如下:


(dt - datetime(1970, 1, 1, tzinfo=timezone.utc)).total_seconds()


觀察:


>>> est = datetime.datetime(1999, 12, 31, 19, 0).astimezone(pytz.timezone('EST'))

>>> utc = est.astimezone(pytz.timezone('UTC'))

>>> est

datetime.datetime(1999, 12, 31, 19, 0, tzinfo=<StaticTzInfo 'EST'>)

>>> utc

datetime.datetime(2000, 1, 1, 0, 0, tzinfo=<UTC>)

>>> est.timestamp()

946684800.0           

>>> utc.timestamp()

946684800.0           # same as est

>>> time.mktime(est.timetuple())

946684800.0

>>> time.mktime(utc.timetuple())

946702800.0           # different than est

自未傳遞時(shí)區(qū)信息以來(lái),最后一次作為本地時(shí)間time.mktime()處理utc.timetuple()。您會(huì)注意到它偏移了 18000(time.timezone對(duì)于 EST,我的時(shí)區(qū))。


查看完整回答
反對(duì) 回復(fù) 2021-08-17
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)