国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python中的日期和時(shí)間(一)datetime模塊

這篇具有很好參考價(jià)值的文章主要介紹了Python中的日期和時(shí)間(一)datetime模塊。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Python實(shí)用教程_spiritx的博客-CSDN博客

Python處理時(shí)間的對(duì)象很多,常用的有time、datetime和calendar等。本文對(duì)常用的時(shí)間對(duì)象的使用進(jìn)行學(xué)習(xí)。在開(kāi)始學(xué)習(xí)具體的對(duì)象前,先學(xué)習(xí)幾個(gè)計(jì)算機(jī)的時(shí)間概念。

UTC(全球標(biāo)準(zhǔn)時(shí)間):是全球范圍內(nèi)計(jì)時(shí)的科學(xué)標(biāo)準(zhǔn),它基于精心維護(hù)的原子鐘,在全球范圍內(nèi)精確到微秒,由于英文(CUT)和法文(TUC)的縮寫(xiě)不同,作為妥協(xié),簡(jiǎn)稱(chēng)UTC。作為全球最精確的時(shí)間系統(tǒng),天文學(xué)家、航海家、“太空跟蹤網(wǎng)”(DSN)?以及其他科學(xué)性學(xué)科都使用它,它的參考點(diǎn)是英國(guó)格林威治標(biāo)準(zhǔn)時(shí)間(GMT):地球本初子午線的午夜,也是?UTC?的午夜?(00:00:00.000000)。本地時(shí)間是根據(jù)地球上不同時(shí)區(qū)所處的位置調(diào)整?UTC?得來(lái)的,比如當(dāng)美國(guó)加州的太平洋時(shí)間為正午12:00:00?時(shí),UTC?為?20:00:00。

夏令時(shí)(DST:表示為了節(jié)約能源,?人為規(guī)定時(shí)間的意思。也叫夏時(shí)制,夏時(shí)令(Daylight Saving Time:DST),又稱(chēng)"日光節(jié)約時(shí)制"和"夏令時(shí)間”,在這一制度實(shí)行期間所采用的統(tǒng)一時(shí)間稱(chēng)為“夏令時(shí)間”。一般在天亮早的夏季人為將時(shí)間調(diào)快一小時(shí),可以使人早起早睡,減少照明量,以充分利用光照資源,從而節(jié)約照明用電。各個(gè)采納夏時(shí)制的國(guó)家具體規(guī)定不同。全世界有近110個(gè)國(guó)家每年要實(shí)行夏令時(shí)。

感知型”和“簡(jiǎn)單型”對(duì)象:日期和時(shí)間對(duì)象可以根據(jù)它們是否包含時(shí)區(qū)信息而分為“感知型”和“簡(jiǎn)單型”兩類(lèi)。充分掌握應(yīng)用性算法和政治性時(shí)間調(diào)整信息例如時(shí)區(qū)和夏令時(shí)的情況下,一個(gè)?感知型?對(duì)象就能相對(duì)于其他感知型對(duì)象來(lái)精確定位自身時(shí)間點(diǎn)。?感知型對(duì)象是用來(lái)表示一個(gè)沒(méi)有解釋空間的固定時(shí)間點(diǎn)。簡(jiǎn)單型對(duì)象沒(méi)有包含足夠多的信息來(lái)無(wú)歧義地相對(duì)于其他?date/time?對(duì)象來(lái)定位自身時(shí)間點(diǎn)。

時(shí)間戳:Unix時(shí)間戳是從1970年1月1日(UTC/GMT的午夜)開(kāi)始所經(jīng)過(guò)的秒數(shù),不考慮閏秒。?Unix時(shí)間戳(英文為Unix epoch, Unix time, POSIX time?或?Unix timestamp)

import time 
time.time() 
1625483470.3409266

datetime模塊概覽

datetime?模塊中的常用類(lèi)即date、datetime、time、timedelta、timezone、tzinfo。其中date、datetime、time三個(gè)類(lèi)有非常相似的屬性和方法。

datetime模塊中常用的對(duì)象:

?對(duì)象

描述

類(lèi)型

MAXYEAR

9999,指能支持的最大年份

int

MINYEAR

1,指能支持的最小年份

int

date

簡(jiǎn)單型日期,常用的屬性有year, month, day

type

datetime

表示日期時(shí)間的類(lèi),常用的屬性有hour, minute, second, microsecond

type

datetime_CAPI

后面詳細(xì)描述

'PyCapsule'?類(lèi)

sys

各種系統(tǒng)信息

'module'類(lèi)

time

表示時(shí)間的類(lèi),包含屬性:hour、minute、secondmicrosecond?、tzinfo

type

timedelta

表示時(shí)間間隔,即兩個(gè)時(shí)間點(diǎn)的間隔。在日期上做天days,小時(shí)hour,分鐘,秒,毫秒,微妙的時(shí)間計(jì)算

type

timezone

表示時(shí)區(qū)的類(lèi)

type

tzinfo

時(shí)區(qū)的相關(guān)信息

type

datetime.date

語(yǔ)法:

datetime.date(year, month, day)

參數(shù):

  1. year年份、month月份及day日期,所有參數(shù)都是必要的,?參數(shù)必須是在下面范圍內(nèi)的整數(shù)
  2. MINYEAR <= year <= MAXYEAR
  3. 1 <= month <= 12
  4. 1 <= day<=?給定年月對(duì)應(yīng)的天數(shù)
import datetime
t = datetime.date(2019,8,26)
print(type(t))
print(t.day,t.month,t.year) # <class 'datetime.date'>
26 8 2019

主要屬性

date.min、date.max、date.resolution

date.min:最小日期

date.max:最大日期

date.resolution:?兩個(gè)日期對(duì)象的最小間隔

from datetime import date

print(date.min) #0001-01-01
print(date.max) #9999-12-31
print(date.resolution) #1 day, 0:00:00

date.year、date.month、date.day

分別是年、月、日

from datetime import date

today = date.today()
print(f'{today.year=}')
print(f'{today.month=}')
print(f'{today.day=}')

‘’’
today.year=2023
today.month=9
today.day=7
‘’’

主要方法

獲取今天日期

classmethod?date.today()

返回當(dāng)前的本地日期,等價(jià)于date.fromtimestamp(time.time())。

from datetime import date 
date.today()
datetime.date(2021, 7, 4)

時(shí)間戳轉(zhuǎn)換為date

classmethod?date.fromtimestamp(timestamp)

返回對(duì)應(yīng)于POSIX時(shí)間戳的當(dāng)?shù)貢r(shí)間,例如?time.time()?返回的就是時(shí)間戳。注意:?unix時(shí)間戳是從1970年1月1日(UTC/GMT的午夜)開(kāi)始所經(jīng)過(guò)的秒數(shù),不考慮閏秒。

from datetime import date
date.fromtimestamp(1339119900000/1e3).strftime('%Y-%m-%d %H:%M')
'2012-06-07 00:00'
date.fromtimestamp(1339120800000/1e3).strftime('%Y-%m-%d %H:%M')
'2012-06-07 00:00'

字符串與date的相互轉(zhuǎn)換

date.fromisoformat(date_string)

返回一個(gè)對(duì)應(yīng)于以?YYYY-MM-DD?格式給出的?date_string??date?對(duì)象

>>>from datetime import date
>>>date.fromisoformat('2019-12-04')
datetime.date(2019, 12, 4)
>>>date.fromisoformat('20191204')
datetime.date(2019, 12, 4)
>>>date.fromisoformat('2021-W01-1')
datetime.date(2021, 1, 4)

這是?date.isoformat()?的逆操作。?它只支持?YYYY-MM-DD?格式。?更通用的要用strptime

d.isoformat()
'2002-03-11'

__str__()也是等價(jià)于date.isoformat()

from datetime import date
date(2021, 10, 1).__str__()
'2021-10-01'


str(date(2021, 10, 1))
'2021-10-01'

日期格式化

date.strftime(format)

將給定格式的日期時(shí)間對(duì)象轉(zhuǎn)換為字符串

import datetime


dt=datetime.date(2021, 10, 1)#創(chuàng)建一個(gè)日期對(duì)象
dt.strftime("%Y-%m-%d")
'2021-10-01'


dt.strftime("%Y年%m月%d日")
'2021年10月01日'


dt.strftime("%Y//%m//%d")
'2021//10//01'


dt.strftime("%Y-%m-%d %H:%M")
'2021-10-01 00:00'


dt.strftime("%A, %d. %B %Y %I:%M%p")
'Friday, 01. October 2021 12:00AM'

__format__()?date.strftime()?相同。

格式化代碼

以下列表顯示了 1989 版 C 標(biāo)準(zhǔn)所要求的全部格式代碼,它們?cè)趲в袠?biāo)準(zhǔn) C 實(shí)現(xiàn)的所有平臺(tái)上均可用。?

指令

含意

示例

備注

%a

當(dāng)?shù)毓ぷ魅盏目s寫(xiě)。

Sun, Mon, ..., Sat (en_US);

So, Mo, ..., Sa (de_DE)

(1)

%A

本地化的星期中每日的完整名稱(chēng)。

Sunday, Monday, ..., Saturday (en_US);

Sonntag, Montag, ..., Samstag (de_DE)

(1)

%w

以十進(jìn)制數(shù)顯示的工作日,其中0表示星期日,6表示星期六。

0, 1, ..., 6

%d

補(bǔ)零后,以十進(jìn)制數(shù)顯示的月份中的一天。

01, 02, ..., 31

(9)

%b

當(dāng)?shù)卦路莸目s寫(xiě)。

Jan, Feb, ..., Dec (en_US);

Jan, Feb, ..., Dez (de_DE)

(1)

%B

本地化的月份全名。

January, February, ..., December (en_US);

Januar, Februar, ..., Dezember (de_DE)

(1)

%m

補(bǔ)零后,以十進(jìn)制數(shù)顯示的月份。

01, 02, ..., 12

(9)

%y

補(bǔ)零后,以十進(jìn)制數(shù)表示的,不帶世紀(jì)的年份。

00, 01, ..., 99

(9)

%Y

十進(jìn)制數(shù)表示的帶世紀(jì)的年份。

0001, 0002, ..., 2013, 2014, ..., 9998, 9999

(2)

%H

以補(bǔ)零后的十進(jìn)制數(shù)表示的小時(shí)(24 小時(shí)制)。

00, 01, ..., 23

(9)

%I

以補(bǔ)零后的十進(jìn)制數(shù)表示的小時(shí)(12 小時(shí)制)。

01, 02, ..., 12

(9)

%p

本地化的 AM 或 PM 。

AM, PM (en_US);

am, pm (de_DE)

(1), (3)

%M

補(bǔ)零后,以十進(jìn)制數(shù)顯示的分鐘。

00, 01, ..., 59

(9)

%S

補(bǔ)零后,以十進(jìn)制數(shù)顯示的秒。

00, 01, ..., 59

(4), (9)

%f

微秒作為一個(gè)十進(jìn)制數(shù),零填充到 6 位。

000000, 000001, ..., 999999

(5)

%z

UTC 偏移量,格式為?±HHMM[SS[.ffffff]]?(如果是簡(jiǎn)單型對(duì)象則為空字符串)。

(空), +0000, -0400, +1030, +063415, -030712.345216

(6)

%Z

時(shí)區(qū)名稱(chēng)(如果對(duì)象為簡(jiǎn)單型則為空字符串)。

(空), UTC, GMT

(6)

%j

以補(bǔ)零后的十進(jìn)制數(shù)表示的一年中的日序號(hào)。

001, 002, ..., 366

(9)

%U

以補(bǔ)零后的十進(jìn)制數(shù)表示的一年中的周序號(hào)(星期日作為每周的第一天)。 在新的一年中第一個(gè)星期日之前的所有日子都被視為是在第 0 周。

00, 01, ..., 53

(7), (9)

%W

以補(bǔ)零后的十進(jìn)制數(shù)表示的一年中的周序號(hào)(星期一作為每周的第一天)。 在新的一年中第一個(gè)星期一之前的所有日子都被視為是在第 0 周。

00, 01, ..., 53

(7), (9)

%c

本地化的適當(dāng)日期和時(shí)間表示。

Tue Aug 16 21:30:00 1988 (en_US);

Di 16 Aug 21:30:00 1988 (de_DE)

(1)

%x

本地化的適當(dāng)日期表示。

08/16/88 (None);

08/16/1988 (en_US);

16.08.1988 (de_DE)

(1)

%X

本地化的適當(dāng)時(shí)間表示。

21:30:00 (en_US);

21:30:00 (de_DE)

(1)

%%

字面的?'%'?字符。

%

為了方便起見(jiàn),還包括了C89標(biāo)準(zhǔn)不需要的其他一些指令。這些參數(shù)都對(duì)應(yīng)于ISO 8601日期值。

指令

含意

示例

備注

%G

帶有世紀(jì)的 ISO 8601 年份,表示包含大部分 ISO 星期 (%V) 的年份。

0001, 0002, ..., 2013, 2014, ..., 9998, 9999

(8)

%u

以十進(jìn)制數(shù)顯示的 ISO 8601 星期中的日序號(hào),其中 1 表示星期一。

1, 2, ..., 7

%V

以十進(jìn)制數(shù)顯示的 ISO 8601 星期,以星期一作為每周的第一天。 第 01 周為包含 1 月 4 日的星期。

01, 02, ..., 53

(8), (9)

這些代碼可能不是在所有平臺(tái)上都可與?strftime()?方法配合使用。?

替換日期

date.replace(year=self.year, month=self.month, day=self.day)

返回被替換了年、月、日的日期,如果都沒(méi)指定參數(shù),返回一個(gè)具有同樣值的日期

from datetime import date
d = date(2002, 12, 31)
d.replace(day=26)
#datetime.date(2002, 12, 26)

轉(zhuǎn)換C標(biāo)準(zhǔn)格式

date.timetuple(d)

返回一個(gè)?time.struct_time,即?time.localtime()?所返回的類(lèi)型。hours, minutes??seconds?值均為?0,且?DST?旗標(biāo)值為?-1

d = date(2002, 12, 31)
date.timetuple(d)
time.struct_time(tm_year=2002, tm_mon=12, tm_mday=31, 
tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=365, 
tm_isdst=-1)

date.ctime()

返回一個(gè)表示日期的字符串,在原生?C ctime()?函數(shù)?(time.ctime()?會(huì)發(fā)起調(diào)用該函數(shù),但?date.ctime()?則不會(huì))?遵循?C?標(biāo)準(zhǔn)的平臺(tái)上。

from datetime import date
date(2021, 10, 1).ctime()
'Fri Oct  1 00:00:00 2021'

date.ctime()?等效于?time.ctime(time.mktime(d.timetuple()))

d=date(2021, 10, 1)
import time
time.ctime(time.mktime(d.timetuple()))
'Fri Oct  1 00:00:00 2021'

星期幾

date.weekday()

返回一個(gè)整數(shù)代表星期幾,星期一為0,星期天為6。例如,?date(2002,?12,?4).weekday()?==?2,表示的是星期三。

date.isoweekday()

返回一個(gè)整數(shù)代表星期幾,星期一為1,星期天為7。

print(f'{date(2023,9,7).weekday()=}') #date(2023,9,7).weekday()=3
print(f'{date(2023,9,7).isoweekday()=}') #date(2023,9,7).weekday()=4

支持的運(yùn)算

運(yùn)算

結(jié)果:

date2?=?date1?+?timedelta

date2?將為?date1?之后的?timedelta.days?日。 (1)

date2?=?date1?-?timedelta

計(jì)算?date2?的值使得?date2?+?timedelta?==?date1。 (2)

timedelta?=?date1?-?date2

(3)

date1?<?date2

如果?date1?的時(shí)間在?date2?之前則認(rèn)為?date1?小于?date2?。 (4)

注釋?zhuān)?/p>

  1. 如果 timedelta.days > 0 則 date2 將在時(shí)間線上前進(jìn),如果 timedelta.days < 0 則將后退。 操作完成后 date2 - date1 == timedelta.days。 timedelta.seconds 和 timedelta.microseconds 會(huì)被忽略。 如果 date2.year 將小于 MINYEAR 或大于 MAXYEAR 則會(huì)引發(fā) OverflowError。
  2. timedelta.seconds 和 timedelta.microseconds 會(huì)被忽略。
  3. 此值完全精確且不會(huì)溢出。 操作完成后 timedelta.seconds 和 timedelta.microseconds 均為 0,并且 date2 + timedelta == date1。
  4. ?日期比較時(shí),如果兩個(gè)值不都是日期,會(huì)引發(fā) TypeError。

在布爾運(yùn)算中,所有 date 對(duì)象都會(huì)被視為真值。

>>>import time
>>>from datetime import date
>>>today = date.today()
>>>today
datetime.date(2007, 12, 5)
>>>today == date.fromtimestamp(time.time())
True
>>>my_birthday = date(today.year, 6, 24)
>>>if my_birthday < today:
    my_birthday = my_birthday.replace(year=today.year + 1)
>>>my_birthday
datetime.date(2008, 6, 24)
>>>time_to_birthday = abs(my_birthday - today)
>>>time_to_birthday.days
202

datetime.time

一個(gè)?time?對(duì)象代表某日的(本地)時(shí)間,它獨(dú)立于任何特定日期,并可通過(guò)?tzinfo?對(duì)象來(lái)調(diào)整。

語(yǔ)法:?

datetime.time(hour=0, minute=0, second=0, microsecond=0,?tzinfo=None, *, fold=0)

  1. 所有參數(shù)都是可選的,tzinfo?可以是?None,或者是一個(gè)?tzinfo?子類(lèi)的實(shí)例。?其余的參數(shù)必須是在下面范圍內(nèi)的整數(shù):
  2. 0 <= hour < 24
  3. 0 <= minute < 60
  4. 0 <= second < 60
  5. 0 <= microsecond < 1000000
  6. fold in [0, 1]

主要屬性

time.min、time.max、time.resolution

分別是最小、最大時(shí)間、最小時(shí)間間隔

from datetime import time

print(f'{time.min=}')
print(f'{time.max=}')
print(f'{time.resolution=}')

# time.min=datetime.time(0, 0)
# time.max=datetime.time(23, 59, 59, 999999)
# time.resolution=datetime.timedelta(microseconds=1)

time.hour、time.minute、time.second、time. microsecond

分別標(biāo)識(shí)時(shí)間對(duì)象的小時(shí)、分鐘、秒和毫秒

from datetime import time

t0 = time(18,26,31,100)

print(f'{t0.hour=}')
print(f'{t0.minute=}')
print(f'{t0.second=}')
print(f'{t0.microsecond=}')

# t0.hour=18
# t0.minute=26
# t0.second=31
# t0.microsecond=100

時(shí)區(qū)time.tzinfo

返回時(shí)區(qū)信息

time.fold

主要方法

字符串與time轉(zhuǎn)換

time.isoformat(timespec='auto')

格式化為標(biāo)準(zhǔn)時(shí)間的字符串

from datetime import time
t = time(hour=12, minute=34, second=56, microsecond=123456)
t.isoformat()
'12:34:56.123456'


t.isoformat(timespec='minutes')
'12:34'


dt = time(hour=12, minute=34, second=56, microsecond=0)
dt.isoformat(timespec='microseconds')
'12:34:56.000000'


dt.isoformat(timespec='auto')
'12:34:56'

按標(biāo)準(zhǔn)格式從字符串轉(zhuǎn)換為time

time.fromisoformat(time_string)

返回對(duì)應(yīng)于?time.isoformat()?所提供的某種?time_string?格式的?time。?特別地,此函數(shù)支持以下格式的字符串:HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]

time.fromisoformat('04:23:01')
 datetime.time(4, 23, 1)


time.fromisoformat('04:23:01.000384')
datetime.time(4, 23, 1, 384)


time.fromisoformat('04:23:01+04:00')
datetime.time(4,23,1, tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))

__str__()

str(t)?等價(jià)于?t.isoformat()

time.strftime(format)

時(shí)間轉(zhuǎn)換為字符串,返回一個(gè)由顯式格式字符串所指明的代表時(shí)間的字符串

from datetime import time
t = time(hour=12, minute=3, second=56)
t.strftime('%H:%M:%S')
#用:分隔
'12:03:56'
#用%分隔
t.strftime('%H%%%M%%%S')
'12%03%56'

__format__()

?time.strftime()?相同

替換時(shí)間

time.replace(hour=self.hour, minute=self.minute, second=self.second,

microsecond=self.microsecond, tzinfo=self.tzinfo, *, fold=0)

返回指定替換的時(shí)間,如果都沒(méi)指定,返回同樣時(shí)間的值

t = time(hour=12, minute=34, second=56, microsecond=123456)
t.replace(hour=23, minute=12,)
datetime.time(23, 12, 56, 123456)

datetime.datetime

datetime 對(duì)象是包含來(lái)自 date 對(duì)象和 time 對(duì)象的所有信息的單一對(duì)象。

class?datetime.datetime(year,?month,?day,?hour=0,?minute=0,?second=0,?microsecond=0,?tzinfo=None,?*,?fold=0)

year, month 和 day 參數(shù)是必須的。 tzinfo 可以是 None 或者是一個(gè) tzinfo 子類(lèi)的實(shí)例。 其余的參數(shù)必須是在下面范圍內(nèi)的整數(shù):

  • MINYEAR?<=?year?<=?MAXYEAR,
  • 1?<=?month?<=?12,
  • 1?<=?day?<=?指定年月的天數(shù),
  • 0?<=?hour?<?24,
  • 0?<=?minute?<?60,
  • 0?<=?second?<?60,
  • 0?<=?microsecond?<?1000000,
  • fold?in?[0,?1].

如果參數(shù)不在這些范圍內(nèi),則拋出 ValueError 異常。

主要屬性

支持date和time的全部屬性。

主要方法

獲取當(dāng)日時(shí)間

classmethod?datetime.today()

返回表示當(dāng)前地方時(shí)的 datetime 對(duì)象,其中 tzinfo 為 None。

等價(jià)于:

datetime.fromtimestamp(time.time())

classmethod?datetime.now(tz=None)

返回表示當(dāng)前地方時(shí)的 date 和 time 對(duì)象。

如果可選參數(shù) tz 為 None 或未指定,這就類(lèi)似于 today(),但該方法會(huì)在可能的情況下提供比通過(guò) time.time() 時(shí)間戳所獲時(shí)間值更高的精度(例如,在提供了 C gettimeofday() 函數(shù)的平臺(tái)上就可以做到這一點(diǎn))。

如果 tz 不為 None,它必須是 tzinfo 子類(lèi)的一個(gè)實(shí)例,并且當(dāng)前日期和時(shí)間將被轉(zhuǎn)換到 tz 時(shí)區(qū)。

此函數(shù)可以替代 today() 和 utcnow()。

classmethod?datetime.utcnow()

返回表示當(dāng)前 UTC 時(shí)間的 date 和 time,其中 tzinfo 為 None。

這類(lèi)似于 now(),但返回的是當(dāng)前 UTC 日期和時(shí)間,類(lèi)型為簡(jiǎn)單型 datetime 對(duì)象。 感知型的當(dāng)前 UTC 日期時(shí)間可通過(guò)調(diào)用 datetime.now(timezone.utc) 來(lái)獲得。

由于簡(jiǎn)單型?datetime?對(duì)象會(huì)被許多?datetime?方法當(dāng)作本地時(shí)間來(lái)處理,最好是使用感知型日期時(shí)間對(duì)象來(lái)表示 UTC 時(shí)間。 因此,創(chuàng)建表示當(dāng)前 UTC 時(shí)間的對(duì)象的推薦方式是通過(guò)調(diào)用?datetime.now(timezone.utc)。

時(shí)間戳與datetime轉(zhuǎn)換

classmethod?datetime.fromtimestamp(timestamp,?tz=None)

返回 POSIX 時(shí)間戳對(duì)應(yīng)的本地日期和時(shí)間,如 time.time() 返回的。 如果可選參數(shù) tz 指定為 None 或未指定,時(shí)間戳將轉(zhuǎn)換為平臺(tái)的本地日期和時(shí)間,并且返回的 datetime 對(duì)象將為簡(jiǎn)單型。

如果 tz 不為 None,它必須是 tzinfo 子類(lèi)的一個(gè)實(shí)例,并且時(shí)間戳將被轉(zhuǎn)換到 tz 指定的時(shí)區(qū)。

fromtimestamp() 可能會(huì)引發(fā) OverflowError,如果時(shí)間戳數(shù)值超出所在平臺(tái) C localtime() 或 gmtime() 函數(shù)的支持范圍的話,并會(huì)在 localtime() 或 gmtime() 報(bào)錯(cuò)時(shí)引發(fā) OSError。 通常該數(shù)值會(huì)被限制在 1970 年至 2038 年之間。 請(qǐng)注意在時(shí)間戳概念包含閏秒的非 POSIX 系統(tǒng)上,閏秒會(huì)被 fromtimestamp() 所忽略,結(jié)果可能導(dǎo)致兩個(gè)相差一秒的時(shí)間戳產(chǎn)生相同的 datetime 對(duì)象。 相比 utcfromtimestamp() 更推薦使用此方法。

在 3.3 版更改: 引發(fā) OverflowError 而不是 ValueError,如果時(shí)間戳數(shù)值超出所在平臺(tái) C localtime() 或 gmtime() 函數(shù)的支持范圍的話。 并會(huì)在 localtime() 或 gmtime() 出錯(cuò)時(shí)引發(fā) OSError 而不是 ValueError。

classmethod?datetime.utcfromtimestamp(timestamp)

返回對(duì)應(yīng)于 POSIX 時(shí)間戳的 UTC datetime,其中 tzinfo 值為 None。 (結(jié)果為簡(jiǎn)單型對(duì)象。)

這可能引發(fā) OverflowError,如果時(shí)間戳數(shù)值超出所在平臺(tái) C gmtime() 函數(shù)的支持范圍的話,并會(huì)在 gmtime() 報(bào)錯(cuò)時(shí)引發(fā) OSError。 通常該數(shù)值會(huì)被限制在 1970 至 2038 年之間。

要得到一個(gè)感知型 datetime 對(duì)象,應(yīng)調(diào)用 fromtimestamp():

datetime.fromtimestamp(timestamp, timezone.utc)
在 POSIX 兼容的平臺(tái)上,它等價(jià)于以下表達(dá)式:

datetime(1970, 1, 1, tzinfo=timezone.utc) + timedelta(seconds=timestamp)
不同之處在于后一種形式總是支持完整年份范圍:從 MINYEAR 到 MAXYEAR 的開(kāi)區(qū)間。

警告 由于簡(jiǎn)單型 datetime 對(duì)象會(huì)被許多 datetime 方法當(dāng)作本地時(shí)間來(lái)處理,最好是使用感知型日期時(shí)間對(duì)象來(lái)表示 UTC 時(shí)間。 因此,創(chuàng)建表示特定 UTC 時(shí)間戳的日期時(shí)間對(duì)象的推薦方式是通過(guò)調(diào)用 datetime.fromtimestamp(timestamp, tz=timezone.utc)。
在 3.3 版更改: 引發(fā) OverflowError 而不是 ValueError,如果時(shí)間戳數(shù)值超出所在平臺(tái) C gmtime() 函數(shù)的支持范圍的話。 并會(huì)在 gmtime() 出錯(cuò)時(shí)引發(fā) OSError 而不是 ValueError。

datetime.timestamp()

將datetime類(lèi)型轉(zhuǎn)換為時(shí)間戳。

組合時(shí)間和日期

classmethod?datetime.combine(date,?time,?tzinfo=self.tzinfo)

將日期和時(shí)間對(duì)象組合成一個(gè)datetime對(duì)象。

任意的 datetime object d:

?d == datetime.combine(d.date(), d.time(), d.tzinfo).?

字符串與datetime的轉(zhuǎn)換

classmethod?datetime.fromisoformat(date_string)

將datetime轉(zhuǎn)換為標(biāo)準(zhǔn)字符串

>>>from datetime import datetime
>>>datetime.fromisoformat('2011-11-04')
datetime.datetime(2011, 11, 4, 0, 0)
>>>datetime.fromisoformat('20111104')
datetime.datetime(2011, 11, 4, 0, 0)
>>>datetime.fromisoformat('2011-11-04T00:05:23')
datetime.datetime(2011, 11, 4, 0, 5, 23)
>>>datetime.fromisoformat('2011-11-04T00:05:23Z')
datetime.datetime(2011, 11, 4, 0, 5, 23, tzinfo=datetime.timezone.utc)
>>>datetime.fromisoformat('20111104T000523')
datetime.datetime(2011, 11, 4, 0, 5, 23)
>>>datetime.fromisoformat('2011-W01-2T00:05:23.283')
datetime.datetime(2011, 1, 4, 0, 5, 23, 283000)
>>>datetime.fromisoformat('2011-11-04 00:05:23.283')
datetime.datetime(2011, 11, 4, 0, 5, 23, 283000)
>>>datetime.fromisoformat('2011-11-04 00:05:23.283+00:00')
datetime.datetime(2011, 11, 4, 0, 5, 23, 283000, tzinfo=datetime.timezone.utc)
>>>datetime.fromisoformat('2011-11-04T00:05:23+04:00')   
datetime.datetime(2011, 11, 4, 0, 5, 23,tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))

classmethod?datetime.strptime(date_string,?format)

datetime.timedelta

timedelta 對(duì)象表示兩個(gè) date 或者 time 的時(shí)間間隔

class?datetime.timedelta(days=0,?seconds=0,?microseconds=0,?milliseconds=0,?minutes=0,?hours=0,?weeks=0)

所有參數(shù)都是可選的并且默認(rèn)為?0。 這些參數(shù)可以是整數(shù)或者浮點(diǎn)數(shù),也可以是正數(shù)或者負(fù)數(shù)。

只有?days,?seconds?和?microseconds?會(huì)存儲(chǔ)在內(nèi)部。 參數(shù)單位的換算規(guī)則如下:

  • 1毫秒會(huì)轉(zhuǎn)換成1000微秒。
  • 1分鐘會(huì)轉(zhuǎn)換成60秒。
  • 1小時(shí)會(huì)轉(zhuǎn)換成3600秒。
  • 1星期會(huì)轉(zhuǎn)換成7天。

日期、秒、微秒都是標(biāo)準(zhǔn)化的,所以它們的表達(dá)方式也是唯一的,例:

  • 0?<=?microseconds?<?1000000
  • 0?<=?seconds?<?3600*24?(一天的秒數(shù))
  • -999999999?<=?days?<=?999999999
>>>from datetime import timedelta
>>>delta = timedelta(
    days=50,
    seconds=27,
    microseconds=10,
    milliseconds=29000,
    minutes=5,
    hours=8,
    weeks=2
)
>>># Only days, seconds, and microseconds remain
>>>delta
datetime.timedelta(days=64, seconds=29156, microseconds=10)

在有任何參數(shù)為浮點(diǎn)型并且 microseconds 值為小數(shù)的情況下,從所有參數(shù)中余下的微秒數(shù)將被合并,并使用四舍五入偶不入奇的規(guī)則將總計(jì)值舍入到最接近的整數(shù)微秒值。 如果沒(méi)有任何參數(shù)為浮點(diǎn)型的情況下,則轉(zhuǎn)換和標(biāo)準(zhǔn)化過(guò)程將是完全精確的(不會(huì)丟失信息)。

如果標(biāo)準(zhǔn)化后的 days 數(shù)值超過(guò)了指定范圍,將會(huì)拋出 OverflowError 異常。

請(qǐng)注意對(duì)負(fù)數(shù)值進(jìn)行標(biāo)準(zhǔn)化的結(jié)果可能會(huì)令人感到驚訝。 例如:

>>>from datetime import timedelta
>>>d = timedelta(microseconds=-1)
>>>(d.days, d.seconds, d.microseconds)
(-1, 86399, 999999)

主要的屬性

?timedelta.days、timedelta.seconds、timedelta.microseconds

時(shí)間間隔的天數(shù)、秒數(shù)和微妙數(shù)。

主要的方法

timedelta.total_seconds()

返回時(shí)間間隔包含了多少秒。

>>>from datetime import timedelta
>>>year = timedelta(days=1)
>>>timedelta.total_seconds(year)
86400.0

支持的運(yùn)算

運(yùn)算

結(jié)果:

t1?=?t2?+?t3

t2?和?t3?的和。 運(yùn)算后?t1-t2?==?t3?and?t1-t3?==?t2?必為真值。(1)

t1?=?t2?-?t3

t2?減?t3?的差。 運(yùn)算后?t1?==?t2?-?t3?and?t2?==?t1?+?t3?必為真值。 (1)(6)

t1?=?t2?*?i?or?t1?=?i?*?t2

乘以一個(gè)整數(shù)。運(yùn)算后假如?i?!=?0?則?t1?// i ==?t2?必為真值。

In general,?t1?* i ==?t1?* (i-1) +?t1?is true. (1)

t1?=?t2?*?f?or?t1?=?f?*?t2

乘以一個(gè)浮點(diǎn)數(shù),結(jié)果會(huì)被舍入到 timedelta 最接近的整數(shù)倍。 精度使用四舍五偶入奇不入規(guī)則。

f?=?t2?/?t3

總時(shí)間?t2?除以間隔單位?t3?(3)。 返回一個(gè)?float對(duì)象。

t1?=?t2?/?f?or?t1?=?t2?/?i

除以一個(gè)浮點(diǎn)數(shù)或整數(shù)。 結(jié)果會(huì)被舍入到 timedelta 最接近的整數(shù)倍。 精度使用四舍五偶入奇不入規(guī)則。

t1?=?t2?//?i?or?t1?=?t2?//?t3

計(jì)算底數(shù),其余部分(如果有)將被丟棄。在第二種情況下,將返回整數(shù)。 (3)

t1?=?t2?%?t3

余數(shù)為一個(gè) timedelta?對(duì)象。(3)

q,?r?=?divmod(t1,?t2)

通過(guò) :?q?=?t1?//?t2?(3) and?r?=?t1?%?t2?計(jì)算出商和余數(shù)。q是一個(gè)整數(shù),r是一個(gè) timedelta?對(duì)象。

+t1

返回一個(gè)相同數(shù)值的 timedelta?對(duì)象。

-t1

等價(jià)于 timedelta(-t1.days, -t1.seconds, -t1.microseconds), 和?t1* -1. (1)(4)

abs(t)

當(dāng)?t.days?>=?0?時(shí)等于 +t, 當(dāng)?t.days?<?0?時(shí) -t?。 (2)

str(t)

返回一個(gè)形如?[D?day[s],?][H]H:MM:SS[.UUUUUU]?的字符串,當(dāng)?t?為負(fù)數(shù)的時(shí)候, D 也為負(fù)數(shù)。 (5)

repr(t)

返回一個(gè) timedelta?對(duì)象的字符串表示形式,作為附帶正規(guī)屬性值的構(gòu)造器調(diào)用。

tzinfo及子類(lèi)

tzinfo是一個(gè)抽象基類(lèi),也就是說(shuō)該類(lèi)不應(yīng)被直接實(shí)例化,指示特定時(shí)區(qū)的信息。

datetime 模塊提供了 timezone,這是 tzinfo 的一個(gè)簡(jiǎn)單實(shí)體子類(lèi),它能以與 UTC 的固定差值來(lái)表示不同的時(shí)區(qū),例如 UTC 本身或北美的 EST 和 EDT。

timezone 類(lèi)是 tzinfo 的子類(lèi),它的每個(gè)實(shí)例都代表一個(gè)以與 UTC 的固定時(shí)差來(lái)定義的時(shí)區(qū)。

此類(lèi)的對(duì)象不可被用于代表某些特殊地點(diǎn)的時(shí)區(qū)信息,這些地點(diǎn)在一年的不同日期會(huì)使用不同的時(shí)差,或是在歷史上對(duì)民用時(shí)間進(jìn)行過(guò)調(diào)整。

class datetime.timezone(offset, name=None)
offset 參數(shù)必須指定為一個(gè) timedelta 對(duì)象,表示本地時(shí)間與 UTC 的時(shí)差。 它必須嚴(yán)格限制于 -timedelta(hours=24) 和 timedelta(hours=24) 之間,否則會(huì)引發(fā) ValueError。

name 參數(shù)是可選的。 如果指定則必須為一個(gè)字符串,它將被用作 datetime.tzname() 方法的返回值。

import datetime
dt = datetime.datetime(2022, 9, 10, 1, 21, 32, 676435)
tm = datetime.timezone(datetime.timedelta(hours = 2), name = "CET")
dt = dt.astimezone(tm)
print("CET:", dt)
print("UTC Offset:", tm.utcoffset(None))
print("Name of the Timezone:", tm.tzname(None))
print("DST: ", tm.dst(None))
print("From UTC:", tm.fromutc(dt))

‘’'
CET: 2022-09-10 03:21:32.676435+02:00
UTC Offset: 2:00:00
Name of the Timezone: CET
DST: None
From UTC: 2022-09-10 05:21:32.676435+02:00
‘''

上面的代碼首先創(chuàng)建了一個(gè)datetime?對(duì)象,并使用timezone?類(lèi)聲明了一個(gè)時(shí)區(qū)。我們聲明CET,它是UTC+02:00?。

接下來(lái),使用datetime?對(duì)象上可用的astimezone()?,我們創(chuàng)建了一個(gè)有時(shí)間區(qū)的日期時(shí)間對(duì)象。我們使用tzinfo?抽象類(lèi)所包含的、在timezone?類(lèi)中實(shí)現(xiàn)的所有四個(gè)方法。

由于沒(méi)有關(guān)于日照周期的細(xì)節(jié),dst()?方法返回None?。

ZoneInfo

zoneinfo 模塊根據(jù) PEP 615 的最初說(shuō)明提供了具體的時(shí)區(qū)實(shí)現(xiàn)來(lái)支持 IANA 時(shí)區(qū)數(shù)據(jù)庫(kù)。

ZoneInfo 是 datetime.tzinfo 抽象基類(lèi)的具體實(shí)現(xiàn),其目標(biāo)是通過(guò)構(gòu)造器、 datetime.replace 方法或 datetime.astimezone 來(lái)與 tzinfo 建立關(guān)聯(lián):

>>>from zoneinfo import ZoneInfo
>>>from datetime import datetime, timedelta

>>>dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
>>>print(dt)
2020-10-31 12:00:00-07:00

>>>dt.tzname()
'PDT'

以此方式構(gòu)造的日期時(shí)間對(duì)象可兼容日期時(shí)間運(yùn)算并可在無(wú)需進(jìn)一步干預(yù)的情況下處理夏令時(shí)轉(zhuǎn)換:

>>>dt_add = dt + timedelta(days=1)

>>>print(dt_add)
2020-11-01 12:00:00-08:00

>>>dt_add.tzname()
'PST'

這些時(shí)區(qū)還支持在 PEP 495 中引入的 fold。 在可能導(dǎo)致時(shí)間歧義的時(shí)差轉(zhuǎn)換中(例如夏令時(shí)到標(biāo)準(zhǔn)時(shí)的轉(zhuǎn)換),當(dāng) fold=0 時(shí)會(huì)使用轉(zhuǎn)換 之前 的時(shí)差,而當(dāng) fold=1 時(shí)則使用轉(zhuǎn)換 之后 的時(shí)差,例如:

>>>dt = datetime(2020, 11, 1, 1, tzinfo=ZoneInfo("America/Los_Angeles"))
>>>print(dt)
2020-11-01 01:00:00-07:00

>>>print(dt.replace(fold=1))
2020-11-01 01:00:00-08:00

當(dāng)執(zhí)行來(lái)自另一時(shí)區(qū)的轉(zhuǎn)換時(shí),fold 將被設(shè)置為正確的值:

>>>from datetime import timezone
>>>LOS_ANGELES = ZoneInfo("America/Los_Angeles")
>>>dt_utc = datetime(2020, 11, 1, 8, tzinfo=timezone.utc)

# Before the PDT -> PST transition
>>>print(dt_utc.astimezone(LOS_ANGELES))
2020-11-01 01:00:00-07:00

# After the PDT -> PST transition
>>>print((dt_utc + timedelta(hours=1)).astimezone(LOS_ANGELES))
2020-11-01 01:00:00-08:00

zoneinfo 模塊不直接提供時(shí)區(qū)數(shù)據(jù),而是在可能的情況下從系統(tǒng)時(shí)區(qū)數(shù)據(jù)庫(kù)或 PyPI 上的第一方包 tzdata 獲取時(shí)區(qū)信息。 某些系統(tǒng),重要的一點(diǎn)是 Windows 系統(tǒng)也包括在內(nèi),并沒(méi)有可用的 IANA 數(shù)據(jù)庫(kù),因此對(duì)于要保證獲取時(shí)區(qū)信息的跨平臺(tái)兼容性的項(xiàng)目,推薦對(duì) tzdata 聲明依賴(lài)。 如果系統(tǒng)數(shù)據(jù)和 tzdata 均不可用,則所有對(duì) ZoneInfo 的調(diào)用都將引發(fā) ZoneInfoNotFoundError。
?配置數(shù)據(jù)源
當(dāng) ZoneInfo(key) 被調(diào)用時(shí),此構(gòu)造器首先會(huì)在 TZPATH 所指定的目錄下搜索匹配 key 的文件,失敗時(shí)則會(huì)在 tzdata 包中查找匹配。 此行為可通過(guò)三種方式來(lái)配置:

默認(rèn)的 TZPATH 未通過(guò)其他方式指定時(shí)可在 編譯時(shí) 進(jìn)行配置。

TZPATH 可使用 環(huán)境變量 進(jìn)行配置。

在 運(yùn)行時(shí),搜索路徑可使用 reset_tzpath() 函數(shù)來(lái)修改。

編譯時(shí)配置
默認(rèn)的 TZPATH 包括一些時(shí)區(qū)數(shù)據(jù)庫(kù)的通用部署位置(Windows 除外,該系統(tǒng)沒(méi)有時(shí)區(qū)數(shù)據(jù)的“通用”位置)。 在 POSIX 系統(tǒng)中,下游分發(fā)者和從源碼編譯 Python 的開(kāi)發(fā)者知道系統(tǒng)時(shí)區(qū)數(shù)據(jù)部署位置,它們可以通過(guò)指定編譯時(shí)選項(xiàng) TZPATH (或者更常見(jiàn)的是通過(guò) 配置旗標(biāo) --with-tzpath) 來(lái)改變默認(rèn)的時(shí)區(qū)路徑,該選項(xiàng)應(yīng)當(dāng)是一個(gè)由 os.pathsep 分隔的字符串。

在所有平臺(tái)上,配置值會(huì)在 sysconfig.get_config_var() 中以 TZPATH 鍵的形式提供。

環(huán)境配置
當(dāng)初始化 TZPATH 時(shí)(在導(dǎo)入時(shí)或不帶參數(shù)調(diào)用 reset_tzpath() 時(shí)),zoneinfo 模塊將使用環(huán)境變量 PYTHONTZPATH,如果變量存在則會(huì)設(shè)置搜索路徑。

PYTHONTZPATH
這是一個(gè)以 os.pathsep 分隔的字符串,其中包含要使用的時(shí)區(qū)搜索路徑。 它必須僅由絕對(duì)路徑而非相對(duì)路徑組成。 在 PYTHONTZPATH 中指定的相對(duì)路徑部分將不會(huì)被使用,但在其他情況下當(dāng)指定相對(duì)路徑時(shí)的行為該實(shí)現(xiàn)是有定義的;CPython 將引發(fā) InvalidTZPathWarning,而其他實(shí)現(xiàn)可自由地忽略錯(cuò)誤部分或是引發(fā)異常。

要設(shè)置讓系統(tǒng)忽略系統(tǒng)數(shù)據(jù)并改用 tzdata 包,請(qǐng)?jiān)O(shè)置 PYTHONTZPATH=""。

運(yùn)行時(shí)配置
TZ 搜索路徑也可在運(yùn)行時(shí)使用 reset_tzpath() 函數(shù)來(lái)配置。 通常并不建議如此操作,不過(guò)在需要使用指定時(shí)區(qū)路徑(或者需要禁止訪問(wèn)系統(tǒng)時(shí)區(qū))的測(cè)試函數(shù)中使用它則是合理的。

zoneinfo.available_timezones()

獲取一個(gè)包含可用 IANA 時(shí)區(qū)的在時(shí)區(qū)路徑的任何位置均可用的全部有效鍵的集合。 每次調(diào)用該函數(shù)時(shí)都會(huì)重新計(jì)算。

此函數(shù)僅包括規(guī)范時(shí)區(qū)名稱(chēng)而不包括“特殊”時(shí)區(qū)如位于?posix/?和?right/?目錄下的時(shí)區(qū)或?posixrules?時(shí)區(qū)。

小心

此函數(shù)可能會(huì)打開(kāi)大量的文件,因?yàn)榇_定時(shí)區(qū)路徑上某個(gè)文件是否為有效時(shí)區(qū)的最佳方式是讀取開(kāi)頭位置的“魔術(shù)字符串”。

'Asia/Hong_Kong':香港時(shí)區(qū)

'Asia/Shanghai':上海時(shí)區(qū)

但沒(méi)找到北京時(shí)區(qū)

ZoneInfo(key)

ZoneInfo?對(duì)象的序列化是基于鍵的,而不是序列化所有過(guò)渡數(shù)據(jù),并且基于文件構(gòu)造的?ZoneInfo?對(duì)象(即使是指定了?key?值的對(duì)象)不能被封存。

ZoneInfo(key): 當(dāng)使用主構(gòu)造器構(gòu)造時(shí),會(huì)基于鍵序列化一個(gè)?ZoneInfo?對(duì)象,而當(dāng)反序列化時(shí),反序列化過(guò)程會(huì)使用主構(gòu)造器,因此預(yù)期它們與其他對(duì)同一時(shí)區(qū)的引用會(huì)是同一對(duì)象。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-700711.html

>>> dt = datetime(2023, 9, 8, 21, 41, 6, 305353, tzinfo=zoneinfo.ZoneInfo('Asia/Shanghai'))
>>> f"{dt.isoformat()} [{dt.tzinfo}]"
'2023-09-08T21:41:06.305353+08:00 [Asia/Shanghai]'
>>> dt = datetime(2023, 9, 8, 21, 41, 6, 305353, tzinfo=zoneinfo.ZoneInfo('Pacific/Kwajalein'))
>>> f"{dt.isoformat()} [{dt.tzinfo}]"
'2023-09-08T21:41:06.305353+12:00 [Pacific/Kwajalein]'

到了這里,關(guān)于Python中的日期和時(shí)間(一)datetime模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python入門(mén)基礎(chǔ)(15)--模塊和python中數(shù)學(xué)、日期、時(shí)間類(lèi)模塊。

    python入門(mén)基礎(chǔ)(15)--模塊和python中數(shù)學(xué)、日期、時(shí)間類(lèi)模塊。

    接上篇,當(dāng)我們創(chuàng)建了很多類(lèi),比如? 圖書(shū)館里的藏書(shū),分社會(huì)科學(xué)類(lèi),藝術(shù)類(lèi)、生活類(lèi)、農(nóng)業(yè)類(lèi)、工業(yè)類(lèi)等,而工業(yè)類(lèi)又分為輕工業(yè)、重工業(yè)、信息工業(yè),然后再細(xì)分。當(dāng)分的越來(lái)越細(xì)時(shí),程序就會(huì)越來(lái)越大。如何管理,便成了程序開(kāi)發(fā)過(guò)程中一個(gè)重要的環(huán)節(jié)。于是可以按

    2024年02月08日
    瀏覽(23)
  • Python中的時(shí)間和日期處理

    在Python開(kāi)發(fā)中,我們經(jīng)常需要處理日期和時(shí)間。Python提供了一些內(nèi)置模塊,如 datetime 、 time 和 calendar ,這些模塊讓我們能夠輕松地獲取、操作和格式化日期和時(shí)間。本文將介紹如何在Python中使用這些模塊進(jìn)行日期和時(shí)間的處理。 在Python中,我們可以使用 datetime 模塊的 date

    2024年02月11日
    瀏覽(19)
  • 創(chuàng)建日期時(shí)間類(lèi)型對(duì)象 pendulum.datetime()

    創(chuàng)建日期時(shí)間類(lèi)型對(duì)象 pendulum.datetime()

    【小白從小學(xué)Python、C、Java】 【計(jì)算機(jī)等考+500強(qiáng)證書(shū)+考研】 【Python-數(shù)據(jù)分析】 創(chuàng)建日期時(shí)間類(lèi)型對(duì)象 pendulum.datetime() 選擇題 請(qǐng)問(wèn)pdl.datetime(2023,10,1,12,0,0)的結(jié)果是: import pendulum as pdl print(\\\"【執(zhí)行】pdl.datetime(2023,10,1)\\\") print(pdl.datetime(2023,10,1)) print(\\\"【執(zhí)行】pdl.datetime(2023,10,1

    2024年02月05日
    瀏覽(24)
  • Python --datetime模塊

    目錄 1, 獲取datetime時(shí)間 2, datetime與timestamp轉(zhuǎn)換 2-1, datetime轉(zhuǎn)timestamp 2-2, timestamp轉(zhuǎn)datetime 3, str格式與datetime轉(zhuǎn)換 3-1, datetime轉(zhuǎn)str格式 3-2, str格式轉(zhuǎn)datetime 4, datetime運(yùn)算 4-1, datetime之間運(yùn)算 4-2, 通過(guò)timedelta加減 5, 時(shí)區(qū)轉(zhuǎn)換 5-1, 本地時(shí)間轉(zhuǎn)換為UTC時(shí)間 5-2, 時(shí)區(qū)間轉(zhuǎn)換

    2024年02月10日
    瀏覽(66)
  • 21 Python的datetime模塊

    概述 ????????在上一節(jié),我們介紹了Python的time模塊,包括:time模塊中一些常用的屬性和函數(shù)。在這一節(jié),我們將介紹Python的datetime模塊。datetime模塊屬于Python的內(nèi)置模塊,提供了一種方便的方法來(lái)處理日期和時(shí)間。該模塊包含了許多類(lèi),包括:date、time、datetime、timedelta等

    2024年02月08日
    瀏覽(33)
  • 【datetime】python的時(shí)間獲取利器

    【datetime】python的時(shí)間獲取利器

    Python寫(xiě)一些業(yè)務(wù)場(chǎng)景,肯定避免不了要使用時(shí)間,那么怎么做好“時(shí)間管理”呢。以下是我經(jīng)常用的幾個(gè)用法,后續(xù)遇到新的也會(huì)一并補(bǔ)充進(jìn)來(lái),也當(dāng)作為自己的一個(gè)筆記吧。 1、獲取當(dāng)前時(shí)間或生成指定時(shí)間? 2.strftime格式化時(shí)間 如需要獲取指定時(shí)間格式,還有特定格式的年

    2023年04月09日
    瀏覽(22)
  • Element-UI的DateTimePicker禁用日期時(shí)間選擇(type=datetime)

    Element-UI的DateTimePicker禁用日期時(shí)間選擇(type=datetime)

    \\\"date-fns\\\": \\\"^2.29.3\\\", \\\"element-ui\\\": \\\"^2.15.13\\\", 效果: ?? 效果:

    2024年02月12日
    瀏覽(34)
  • Python中的Time和DateTime

    Python中的Time和DateTime

    Python在處理與時(shí)間相關(guān)的操作時(shí)有兩個(gè)重要模塊:time和datetime。在本文中,我們介紹這兩個(gè)模塊并為每個(gè)場(chǎng)景提供帶有代碼和輸出的說(shuō)明性示例。 模塊主要用于處理時(shí)間相關(guān)的操作,例如獲取當(dāng)前時(shí)間、時(shí)間的計(jì)算和格式化等。它提供了一些函數(shù)和常量,包括: time() :返回

    2024年02月07日
    瀏覽(16)
  • java判斷當(dāng)前日期時(shí)間大于指定日期時(shí)間 記錄日常開(kāi)發(fā)中的小搜索

    可以使用Java中的 Calendar 類(lèi)來(lái)獲取當(dāng)前時(shí)間和所需的指定時(shí)間并將它們進(jìn)行比較。這是一個(gè)示例代碼: 在上面的示例中,我們首先使用 Calendar.getInstance() 方法獲取當(dāng)前時(shí)間和指定時(shí)間的 Calendar 對(duì)象。然后,我們將指定時(shí)間設(shè)置為2022年1月1日下午3:30,并使用 after() 方法比較當(dāng)

    2024年02月07日
    瀏覽(25)
  • Element UI el-date-picker datetime 日期時(shí)間選擇器 底部添加清除按鈕

    Element UI el-date-picker datetime 日期時(shí)間選擇器 底部添加清除按鈕

    客戶需要在時(shí)間選擇器點(diǎn)擊后在選擇面板的下方添加一個(gè)清除按鈕進(jìn)行時(shí)間的清除,不想使用自帶的清除小x按鈕。 element-ui并沒(méi)有暴露可以自定義按鈕與事件。 我想到了兩個(gè)方案解決 1.使用組件提供的快捷方法 Shortcuts 完成,需要把樣式調(diào)整到對(duì)應(yīng)的位置。由于我最終沒(méi)有選

    2024年04月10日
    瀏覽(90)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包