検索
ホームページバックエンド開発Python チュートリアルPython の Datetime モジュール リファレンス マニュアル

はじめに

Python には、カレンダー、時刻、日付時刻など、日付と時刻を操作するための複数の組み込みモジュールが用意されています。 time モジュールによって提供されるインターフェイスは、基本的に C 標準ライブラリ time.h と一致しています。 time モジュールと比較して、datetime モジュールのインターフェイスはより直感的で呼び出しやすくなっています。

モジュールは 2 つの定数を定義します:

datetime.MINYEAR

datetime.MAXYEAR

これら 2 つの定数は、それぞれ datetime が表すことができる最小年と最大年を表します。このうち、MINYEAR = 1、MAXYEAR = 9999 となります。

datetime モジュールは次のクラスを定義します:

datetime.date: 日付を表すクラス。一般的に使用される属性には、年、月、日が含まれます。

datetime.time: 時間を表すクラス。一般的に使用される属性には、時、分、秒、マイクロ秒が含まれます。

datetime.datetime: 日付と時刻を表します。

datetime.timedelta: 時間間隔、つまり 2 つの時点間の長さを表します。

datetime.tzinfo: タイムゾーンに関連する関連情報。

注: 上記にリストされたオブジェクトのタイプはすべて不変です。

dateクラス

dateクラスは日付(年、月、日で構成される)を表し、そのプロトタイプは次のとおりです:

class datetime.date(年、月、日)

パラメータの説明:

年の範囲は[MINYEAR, MAXYEAR]、つまり[1, 9999]です。

月の範囲は[1, 12]です。 (月は 0 からではなく 1 から始まります);

day の最大値は、指定された年と月のパラメーターに従って決定されます。たとえば、うるう年の 2 月は 29 日です。

date クラスは、一般的に使用されるクラス メソッドとクラス属性を定義します。

date.max、date.min: 日付オブジェクトが表すことができる最大および最小の日付。

date.resolution :date オブジェクトは日付の最小単位を表します。ここは天国です。

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

date.fromtimestamp(timestamp): 指定された時刻に基づいて日付オブジェクトを返します。

datetime.fromordinal(ordinal): グレゴリオ暦に変換します。 time to date オブジェクト; (グレゴリオ暦: 我が国の太陰暦に似た暦表現方法。西洋諸国でより一般的に使用されているため、ここでは詳しく説明しません。)


使用例:

>>> datetime.date.max
datetime.date(9999, 12, 31)
>>> datetime.date.min
datetime.date(1, 1, 1)
>>> datetime.date.resolution
datetime.timedelta(1)
>>> datetime.date.today()
datetime.date(2016, 5, 12)
>>> datetime.date.fromtimestamp(time.time())
datetime.date(2016, 5, 12)


date 提供されるインスタンスのメソッドと属性:


date.year、date.month、date.day: 年、月、日;

date.replace(year, month, day): パラメーターを使用して新しい日付オブジェクトを生成します。指定された年、月、日は、元のオブジェクトの属性を置き換えます。 (元のオブジェクトは変更されません)

date.timetuple(): 日付に対応する time.struct_time オブジェクトを返します。

date.toordinal(): 日付に対応するグレゴリオ暦の日付を返します。 ): 月曜日の場合は 0 を返し、火曜日の場合は 1 を返します。

data.isoweekday(): 月曜日の場合は 1 を返します。 2、など;

date.isocalendar(): (年、月、日) の形式でタプルを返します。

date.isoformat(): 'YYYY-MM-DD の形式で文字列を返します。 ';

date.strftime(fmt): カスタム形式の文字列。

使用例:

>>> today = datetime.date.today()
>>> today.year
2016
>>> today.month
5
>>> today.day
12
>>> tomorrow = today.replace(day=13)
>>> tomorrow
datetime.date(2016, 5, 13)
>>> tomorrow.timetuple()
time.struct_time(tm_year=2016, tm_mon=5, tm_mday=13, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=134, tm_isdst=-1)
>>> tomorrow.toordinal()
736097
>>> tomorrow.weekday()
4
>>> tomorrow.isoweekday()
5
>>> tomorrow.isocalendar()
(2016, 19, 5)
>>> tomorrow.isoformat()
'2016-05-13'
>>> tomorrow.strftime("%y-%m-%d")
'16-05-13'

date は単純な演算子をオーバーロードします:

date は日付の加算、減算、比較を可能にします:

date2 = date1 + timedelta:

date と間隔、新しい値を返しますdate オブジェクト

date2 = date1 - timedelta:

日付を間隔で区切って、新しい日付オブジェクトを返します

timedelta = date1 - date2:

2 つの日付を減算し、時間間隔を返します オブジェクト

date1

2 つの日付を比較します。

使用例:

>>> now = datetime.date.today()
>>> now
datetime.date(2016, 5, 12)
>>> now += datetime.date.resolution
>>> now
datetime.date(2016, 5, 13)
>>> now -= datetime.date.resolution
>>> now
datetime.date(2016, 5, 12)
>>> now < datetime.date.max
True

Timeクラス

timeクラスは時間(時、分、秒、マイクロ秒で構成される)を表し、そのプロトタイプは次のとおりです:

class datetime.time(hour=0) 、分= 0、秒=0、マイクロ秒=0、tzinfo=None)

パラメータの説明:

時の範囲は[0, 24)、

分の範囲は[0, 60)、

秒の範囲は[0, 60)、

マイクロ秒の範囲は[0, 1000000)、

tzinfoはタイムゾーン情報を表します。

時間クラスによって定義されるクラス属性:

time.min、time.max: 時間クラスが表現できる最小時間と最大時間。その中で、 time.min = time(0, 0, 0, 0)、time.max = time(23, 59, 59, 999999);

time.resolution: 時間の最小単位、ここでは 1 マイクロ秒です。

使用例:

>>> datetime.time.min
datetime.time(0, 0)
>>> datetime.time.max
datetime.time(23, 59, 59, 999999)
>>> datetime.time.resolution
datetime.timedelta(0, 0, 1)

time クラスによって提供されるインスタンス メソッドとプロパティ:

time.hour、time.minut、time.second、time.microsecond: 時、分、秒、マイクロ秒

time.tzinfo: タイムゾーン情報;

time.replace([hour[, minutes[, Second[, microsecond[, tzinfo]]]]]): 時、分、秒を指定して新しい時刻オブジェクトを作成しますパラメーターによって、マイクロ秒は元のオブジェクトの属性を置き換えます (元のオブジェクトは変更されません)。

time.strftime() の形式で文字列表現を返します。 fmt): カスタム形式の文字列を返します。

使用例:

>>> tm = datetime.time(18, 18, 18)
>>> tm.hour
18
>>> tm.minute
18
>>> tm.second
18
>>> tm.microsecond
0
>>> tm.tzinfo
>>> tm.isoformat()
&#39;18:18:18&#39;
>>> tm.replace(hour=20)
datetime.time(20, 18, 18)
>>> tm.strftime("%I:%M:%S %p")
&#39;06:18:18 PM&#39;


Time クラスのオブジェクトは比較のみ可能であり、加算または減算はできません。

datetimeクラス

datetimeは日付と時刻の組み合わせであり、日付と時刻のすべての情報が含まれます。そのプロトタイプは次のとおりです:

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


各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。

datetime类定义的类属性与方法:

datetime.min、datetime.max:datetime所能表示的最小值与最大值;

datetime.resolution:datetime最小单位;

datetime.today():返回一个表示当前本地时间的datetime对象;

datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;

datetime.utcnow():返回一个当前utc时间的datetime对象;

datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;

datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;

datetime.combine(date, time):根据date和time,创建一个datetime对象;

datetime.strptime(date_string, format):将格式字符串转换为datetime对象,data 与 time 类没有提供该方法。

使用示例:

>>> datetime.datetime.min
datetime.datetime(1, 1, 1, 0, 0)
>>> datetime.datetime.max
datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)
>>> datetime.datetime.resolution
datetime.timedelta(0, 0, 1)
>>> print datetime.datetime.resolution
0:00:00.000001
>>> today = datetime.datetime.today()
>>> today
datetime.datetime(2016, 5, 12, 12, 46, 47, 246240)
>>> datetime.datetime.now()
datetime.datetime(2016, 5, 12, 12, 47, 9, 850643)
>>> datetime.datetime.utcnow()
datetime.datetime(2016, 5, 12, 4, 47, 42, 188124)
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2016, 5, 12, 12, 48, 40, 459676)
>>> datetime.datetime.combine(datetime.date(1990, 10, 05), datetime.time(18, 18, 18))
datetime.datetime(1990, 10, 5, 18, 18, 18)
>>> datetime.datetime.strptime("2010-04-07 01:48:16.234000", "%Y-%m-%d %H:%M:%S .%f")
datetime.datetime(2010, 4, 7, 1, 48, 16, 234000)


datetime 的实例方法与属性

datetime类提供的实例方法与属性大部分功能与 date 和 time 类似,这里仅罗列方法名不再赘述:

datetime.year、month、day、hour、minute、second、microsecond、tzinfo:

datetime.date():获取date对象;

datetime.time():获取time对象;

datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]):

**datetime.timetuple() **

**datetime.utctimetuple() **

datetime.toordinal()

datetime.weekday()

datetime.isocalendar()

datetime.isoformat([sep])

datetime.ctime():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));

datetime.strftime(format)

datetime 对象同样可以进行比较,或者相减返回一个时间间隔对象,或者日期时间加上一个间隔返回一个新的日期时间对象。

timedelta 类

datetime.timedelta 对象代表两个时间之间的的时间差,两个 date 或 datetime 对象相减时可以返回一个timedelta 对象。其原型如下:

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

   


所有参数可选,且默认都是0,参数的值可以是整数,浮点数,正数或负数。

内部只存储days,seconds,microseconds,其他参数的值会自动按如下规则抓转换:

1 millisecond(毫秒) 转换成 1000 microseconds(微秒)

1 minute 转换成 60 seconds

1 hour 转换成 3600 seconds

1 week转换成 7 days

三个参数的取值范围分别为:

0

0

-999999999

timedelta 类定义的类属性:

timedelta.min:时间间隔对象的最小值,即 timedelta(-999999999).

timedelta.max:时间间隔对象的最大值,即 timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999).

timedelta.resolution:时间间隔的最小单位,即 timedelta(microseconds=1).

使用示例:

>>> datetime.timedelta.min
datetime.timedelta(-999999999)
>>> datetime.timedelta.max
datetime.timedelta(999999999, 86399, 999999)
>>> datetime.timedelta.resolution
datetime.timedelta(0, 0, 1)
>>> print datetime.timedelta.resolution
0:00:00.000001


timedelta 实例方法

timedelta.total_seconds():计算时间间隔的总秒数

使用示例:

>>> datetime.timedelta.resolution.total_seconds()
1e-06


格式字符串

datetime、date、time 都提供了 strftime() 方法,该方法接收一个格式字符串,输出日期时间的字符串表示。支持的转换格式如下:

%a星期的简写。如 星期三为Web
%A星期的全写。如 星期三为Wednesday
%b月份的简写。如4月份为Apr
%B月份的全写。如4月份为April
%c: 日期时间的字符串表示。(如: 04/07/10 10:43:39)
%d: 日在这个月中的天数(是这个月的第几天)
%f: 微秒(范围[0,999999])
%H: 小时(24小时制,[0, 23])
%I: 小时(12小时制,[0, 11])
%j: 日在年中的天数 [001,366](是当年的第几天)
%m: 月份([01,12])
%M: 分钟([00,59])
%p: AM或者PM
%S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
%U: 周在当年的周数当年的第几周),星期天作为周的第一天
%w: 今天在这周的天数,范围为[0, 6],6表示星期天
%W: 周在当年的周数(是当年的第几周),星期一作为周的第一天
%x: 日期字符串(如:04/07/10)
%X: 时间字符串(如:10:43:39)
%y: 2个数字表示的年份
%Y: 4个数字表示的年份
%z: 与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z: 时区名称(如果是本地时间,返回空字符串)
%%: %% => %

   


使用示例:

>>> dt = datetime.datetime.now()
>>> dt.strftime(&#39;%Y-%m-%d %H:%M:%S %f&#39;)
&#39;2016-05-12 14:19:22 333943&#39;
>>> dt.strftime(&#39;%y-%m-%d %I:%M:%S %p&#39;)
&#39;16-05-12 02:19:22 PM&#39;
>>> dt.strftime("%a")
&#39;Thu&#39;
>>> dt.strftime("%A")
&#39;Thursday&#39;
>>> dt.strftime("%b")
&#39;May&#39;
>>> dt.strftime("%B")
&#39;May&#39;
>>> dt.strftime("%c")
&#39;Thu May 12 14:19:22 2016&#39;
>>> dt.strftime("%x")
&#39;05/12/16&#39;
>>> dt.strftime("%X")
&#39;14:19:22&#39;
>>> dt.strftime("%w")
&#39;4&#39;
>>> dt.strftime("%j")
&#39;133&#39;
>>> dt.strftime("%u")
&#39;4&#39;
>>> dt.strftime("%U")
&#39;19&#39;


总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

更多Python中datetime模块参考手册相关文章请关注PHP中文网!

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Apr 25, 2025 am 12:28 AM

Arraysinpython、特にvianumpy、arecrucialinscientificComputing fortheirefficienty andversitility.1)彼らは、fornumericaloperations、data analysis、andmachinelearning.2)numpy'simplementation incensuresfasteroperationsthanpasteroperations.3)arayableminablecickick

同じシステムで異なるPythonバージョンをどのように処理しますか?同じシステムで異なるPythonバージョンをどのように処理しますか?Apr 25, 2025 am 12:24 AM

Pyenv、Venv、およびAnacondaを使用して、さまざまなPythonバージョンを管理できます。 1)Pyenvを使用して、複数のPythonバージョンを管理します。Pyenvをインストールし、グローバルバージョンとローカルバージョンを設定します。 2)VENVを使用して仮想環境を作成して、プロジェクトの依存関係を分離します。 3)Anacondaを使用して、データサイエンスプロジェクトでPythonバージョンを管理します。 4)システムレベルのタスク用にシステムPythonを保持します。これらのツールと戦略を通じて、Pythonのさまざまなバージョンを効果的に管理して、プロジェクトのスムーズな実行を確保できます。

標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?Apr 25, 2025 am 12:21 AM

numpyarrayshaveveraladvantages-averstandardpythonarrays:1)thealmuchfasterduetocベースのインプレンテーション、2)アレモレメモリ効率、特にlargedatasets、および3)それらは、拡散化された、構造化された形成術科療法、

アレイの均質な性質はパフォーマンスにどのように影響しますか?アレイの均質な性質はパフォーマンスにどのように影響しますか?Apr 25, 2025 am 12:13 AM

パフォーマンスに対する配列の均一性の影響は二重です。1)均一性により、コンパイラはメモリアクセスを最適化し、パフォーマンスを改善できます。 2)しかし、タイプの多様性を制限し、それが非効率につながる可能性があります。要するに、適切なデータ構造を選択することが重要です。

実行可能なPythonスクリプトを作成するためのベストプラクティスは何ですか?実行可能なPythonスクリプトを作成するためのベストプラクティスは何ですか?Apr 25, 2025 am 12:11 AM

craftexecutablepythonscripts、次のようになります

numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?Apr 24, 2025 pm 03:53 PM

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Apr 24, 2025 pm 03:49 PM

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

CTypesモジュールは、Pythonの配列にどのように関連していますか?CTypesモジュールは、Pythonの配列にどのように関連していますか?Apr 24, 2025 pm 03:45 PM

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター