ホームページ >バックエンド開発 >Python チュートリアル >Pythonのdatetimeモジュールの使い方と一般的なメソッドのまとめ

Pythonのdatetimeモジュールの使い方と一般的なメソッドのまとめ

不言
不言オリジナル
2018-09-19 14:56:2320664ブラウズ

この記事は、Python の datetime モジュールの使い方と一般的なメソッドをまとめたものです。一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。

datetime モジュールは、より多くのインターフェイスを提供するために time モジュールを再カプセル化します。提供されるクラスは次のとおりです:

date、日付を表すクラス

time、時間を表すクラス

datetime、日付と時刻を表すクラス

timedelta、時間間隔、つまり 2 つの時点間の間隔を表します

tzinfo、タイム ゾーンに関する情報

(これらのクラスのオブジェクトはすべて不変です)

(クラスにはクラス メソッドがあり、クラス メソッドにはメソッドがあり、メソッドはクラス メソッドを継承します)

1. 日付クラス

datetime.date(年、月、日#)

一般的に使用されるクラスのメソッドと属性:

##date.today()現在のローカルを表す日付オブジェクトを返します。 time date.resolutiondate.fromtimestamp(timestamp)

実装:

クラスメソッド

import datetime
import time
print(datetime.date.max)
print(datetime.date.min)
print(datetime.date.today())
print(datetime.date.resolution)
print(datetime.date.fromtimestamp(time.time()+3600000))      # 给定时间戳的 日期

結果

9999-12-31
0001-01-01
2018-09-17
1 day, 0:00:00
2018-10-29

場所一般的に使用されるメソッドとプロパティ:

date.max オブジェクトが保持する最大値Date (9999-12-31) を表すことができます
date.min オブジェクトが表すことができる最小の日付(0001 -01-01)
date オブジェクトは、日付の最小単位 (日)
指定されたタイムスタンプに基づいて日付オブジェクトを返します
#d.月月d.日日#d.replace(年[,月[,日]])d.toordinal()戻り日は曜日です、[1,7]、1 は月曜日を意味し、2 は火曜日を意味します戻り値(年、曜日、isoweekday) の形式のタプル 「YYYY-MM-DD」形式の日付文字列 カスタム形式文字列 ( time モジュールの strftime() メソッドと同じ)
#d.year year
#新しい日付オブジェクトを生成して返します。元の日付オブジェクトは変更されません #時間タプルを返します (time.struct) _time) 日付 ## に対応するオブジェクト
戻り日は、0001-01-01# からの日数です。
##d .weekday()戻り日は曜日 [0,6] です。 0 は月曜日を意味し、1 は火曜日を意味します
##d.isoweekday()
d.isocalendar()
d.isoformat()
d.strftime()

实现:

方法

print(datetime.date.year)              # <attribute &#39;year&#39; of &#39;datetime.date&#39; objects>
print(datetime.date.today().year)     # 本地时时间的年
print(datetime.date.fromtimestamp(time.time()+3600000).month)   # 给定时间戳的 月
print(datetime.date.today().day)  # 日

print(datetime.date.today().replace(year=2019))
print(datetime.date.today().timetuple())
print(datetime.date.today().toordinal())
print(datetime.date.today().weekday())
print(datetime.date.today().isoweekday())
print(datetime.date.today().isocalendar())
print(datetime.date.today().isoformat())
print(datetime.date.today().strftime(&#39;%Y-%m-%d-%a-%I&#39;))

result

<attribute &#39;year&#39; of &#39;datetime.date&#39; objects>
10
2019-09-17
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=260, tm_isdst=-1)
0
(2018, 38, 1)
2018-09-17
2018-09-17-Mon-12

result

2、time类

其中,time类和time模块各自独立

datetime.time(hour[,minute[,decond[,microsecond[,tzinfo]]]])

常用的类方法与属性:

time.max 表示的最大时间
time.min                  表示的最小时间
time.resolution 时间的最小单位,这里是1微秒                                                                         

常用的方法与属性:

t.hour
t.minute               
t.second
t.microsecond 微秒
t.tzinfo 时区信息
t.replace() 用参数指定替代(时,分,秒,微秒,时区)对象,生成并返回新的对象
t.isoformat() 返回'HH:MM:SS'格式字符串
t.strftime() 返回自定义格式化字符串

3. Datetime クラス

は、日付と時刻を結合することと同等です。

datetime.datetime(年,月,日[,時[,分[,秒[,マイクロ秒[,tzinfo]]]]])

一般的に使用されるクラスメソッドとプロパティ:

##datetime.max最大日付#datetime.min最小日付##datetime.resolutiondatetime.today()##タイムスタンプに従って datetime オブジェクトを作成します指定された日付と時刻のオブジェクトを統合します。 datetime オブジェクトの場合書式設定された文字列を日時オブジェクトに変換します

实现:

类方法

import datetime
import time
print(datetime.datetime.resolution)
print(datetime.datetime.today())
print(datetime.datetime.now())
print(datetime.datetime.utcnow())
print(datetime.datetime.fromtimestamp(time.time()))
print(datetime.datetime.utcfromtimestamp(time.time()))
print(datetime.datetime.combine(datetime.date(2019, 3, 5), datetime.time(3, 2, 45)))
print(datetime.datetime.strftime(datetime.date(2019,9,2),&#39;%Y-%m-%d %X&#39;))

result

0:00:00.000001
2018-09-17 20:32:36.868500
2018-09-17 20:32:36.868500
2018-09-17 12:32:36.868500
2018-09-17 20:32:36.868500
2018-09-17 12:32:36.868500
2019-03-05 03:02:45
2019-09-02 00:00:00

其中常用的方法与属性:

datetime オブジェクトで表される日付の最小単位、1 マイクロ秒
#現在の現地時間を返します datetime.now([tz])
現在の現地時間を返しますtime 時間 (tz が指定されている場合) は、tz タイム ゾーンの現地時間を返します datetime.utcnow()
現在の UTC 時間を返します datetime.fromtimestamp(timestamp[,tz])
日付時刻を返します指定された timestamp に基づくオブジェクト。 tz が指定されている場合、tz タイムゾーンの datetime オブジェクト #datetime.utcfromtimestamp(timestamp)
datetime.combine(date, time)
datetime.strftime(date_string,format)
##dt.date()dt の日付オブジェクトを取得します##dt.time()dt.timetz()dt.replace()dt.timetuple()dt.utctimetuple()dt.timestamp()dt.toordinal()dt.weekday()#dt.isocalendar()#'YYYY-MM-DD HH:MM:SS'時間モジュールの time.ctime と同等 (time.mktime(d.timetuple()))指定された形式で時刻文字列を返します

实现:

方法

import datetime,time
print(datetime.datetime.today().tzinfo)
print(datetime.datetime.today().date())
print(datetime.datetime.today().time())
print(datetime.datetime.today().timetz())
print(datetime.datetime.today().timetuple())
print(datetime.datetime.today().timestamp())
print(datetime.datetime.today().ctime())

result

None
2018-09-17
20:36:47.560500
20:36:47.560500
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=17, tm_hour=20, tm_min=36, tm_sec=47, tm_wday=0, tm_yday=260, tm_isdst=-1)
1537187807.5605
Mon Sep 17 20:36:47 2018

4、timedelta类

时间加减(代表了两个datetime之间的时间差)

datetime.timedalta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0 ,hours=0,weeks=0)

在日期上做天,小时,分钟,秒,毫秒,微秒,周 的时间计算

  • 1毫秒转换为1000微秒

  • 1分钟转换为60秒

  • 1小时转换为3600秒

  • 1周转换为7天

其中,timedelta内部只存储 days,seconds,microseconds

方法与属性:

dt.year

dt.month

dt.day

dt.hour

dt.minute

dt.second

dt.マイクロ秒 微妙
dt .tzinfo タイムゾーン情報
dt の時刻オブジェクトを取得します。tzinfo はなし
dt の時刻オブジェクトを取得します。tzinfo は tzinfo と同じですof datetime
パラメータの置換を指定します (年、月、日、時、分) 、秒、微妙、タイムゾーン)、新しいオブジェクトを生成して返します
日時タプル (time.struct_time) に対応する時刻を返します (tzinfo を除く)
UTC 時間を返します 対応する時間タプル (tzinfo を除く)
対応する dt オブジェクトを返します。 Timestamp
返される日付は、0001 以降の最初の日付です。 01-01 何日 (日付クラスと同じ)
の日返される日付が週 [ 1, 7] である場合、1 は月曜日を意味します (日付クラスと同じ)
形式 (年、月、日) の時刻タプルを返します (日付クラスと同じ) ##dt.isoformat()
dt.ctime の形式で文字列を返します()
##dt.strftime ()
td.days 天(范围[-999999999,999999999])
td.seconds 秒(范围[0,86399])                                                                                                   
td.microseconds 微秒(范围[0,999999])
td.total_seconds() 以秒为单位返回该时间差

实现:

方法

m = datetime.datetime.now()
print(m)
l = m + datetime.timedelta(3)
print(l)
n = m + datetime.timedelta(hours=4)
print(n)
span = l-m
print(span)
print(span.total_seconds())

result

2018-09-17 16:38:43.021000
2018-09-20 16:38:43.021000
2018-09-17 20:38:43.021000
3 days, 0:00:00
259200.0

5、tzinfo时区类

 其中,tzinfo是一个抽象类,所以不能直接被实例化

 时间转换需要用datetime和pytz来转换时区

以上がPythonのdatetimeモジュールの使い方と一般的なメソッドのまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。