職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

時刻など表す文字からインスタンス

2021年02月22日 | Python
日付や時刻を表す文字列からインスタンスを生成する


【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【文字列を解析してインスタンスを生成する】
例えば "2020/07/22 10:4:38" などの日付と時刻を表す文字列から datetime クラスのインスタンスを生成することができます。

・書式
datetime.strptime(date_string, format)
1 番目の引数に日付や時刻を表す文字列、 2 番目の引数に解析に使用する書式を定義した文字列を指定します。

書式コード
%y : 2桁の年 00, 01, ..., 99
%Y : 4桁の月 0001, 0002, ..., 9999
%b : 月名の短縮形 Jan, Feb, ..., Dec
%B : 月名 January, February, ..., December
%m : 月 01, 02, ..., 12
%d : 日 01, 02, ..., 31
%H : 時(24時間) 00, 01, ..., 23
%I : 時(12時間) 00, 01, ..., 11
%p : AM or PM
%M : 分 00, 01, ..., 59
%S : 秒 00, 01, ..., 59
%f : マイクロ秒 000000, 000001, ..., 999999
%z : タイムゾーン (空文字列), +0000, -0400 etc
%Z : タイムゾーン名 (空文字列), UTC, EST

サンプルコード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import datetime
>>> str1 = "2020/07/22 13:37:4:33217"
>>> str2 = "07/22/2020 PM 1:37:4:33217"
>>> str3 = "July 22,2020 13:37:4:33217+09:00"
>>>
>>> dt1 = datetime.datetime.strptime(str1, "%Y/%m/%d %H:%M:%S:%f")
>>> dt2 = datetime.datetime.strptime(str2, "%m/%d/%Y %p %I:%M:%S:%f")
>>> dt3 = datetime.datetime.strptime(str3, "%B %d,%Y %H:%M:%S:%f%z")
>>>
>>> print(dt1)
2020-07-22 13:37:04.332170
>>> print(dt2)
2020-07-22 13:37:04.332170
>>> print(dt3)
2020-07-22 13:37:04.332170+09:00
>>>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

時に関するクラスのインスタンスの属性の取得

2021年02月21日 | Python
日付(年/月/日)と時刻(時/分/秒)の値を取得する

【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【属性値を参照する】
日付と時刻の値を持つ datetime クラスではインスタンス毎に次の属性を参照することができます。

・datetime クラスの属性
datetime.year : 年
datetime.month : 月
datetime.day : 日
datetime.hour : 時
datetime.minute : 分
datetime.second : 秒
datetime.microsecond : マイクロ秒
datetime.tzinfo : タイムゾーン
datetime.fold : 0 or 1

・date クラスの属性
date.year : 年
date.month : 月
date.day : 日

・time クラスの属性
time.hour : 時
time.minute : 分
time.second : 秒
time.microsecond : マイクロ秒
time.tzinfo : タイムゾーン
time.fold : 0 or 1

サンプルコード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import datetime
>>> tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
>>> dt = datetime.datetime.now(tokyo_tz)
>>>
>>> print(dt)
2021-02-21 10:50:08.878936+09:00
>>> print("year : " + str(dt.year))
year : 2021
>>> print("month : " + str(dt.month))
month : 2
>>> print("day : " + str(dt.day))
day : 21
>>> print("hour : " + str(dt.hour))
hour : 10
>>> print("minute : " + str(dt.minute))
minute : 50
>>> print("second : " + str(dt.second))
second : 8
>>> print("microsecond : " + str(dt.microsecond))
microsecond : 878936
>>> print("tzinfo : " + str(dt.tzinfo))
tzinfo : UTC+09:00
>>>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

現在の日付と時刻の取得

2021年02月20日 | Python
現在の日付と時刻の値を持つインスタンスを作成する

【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【現在の日付と時刻の値を取得する】
現在の日付と時刻の値を持つ datetime クラスのインスタンスを生成するには、 datetime クラスの now メソッドを使用します。

・書式
datetime.now(tz=None)
引数を省略した場合はローカルにおける現在の日付と時刻を持つインスタンスが作成され、引数に timezone クラスのインスタンスを指定した場合はタイムゾーンの情報を持つインスタンスが作成されます。

サンプルコード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import datetime
>>> dt1 = datetime.datetime.now()
>>> print(dt1)
2021-02-20 11:11:31.482865
>>>
>>> tz_tokyo = datetime.timezone(datetime.timedelta(hours=9))
>>> dt2 = datetime.datetime.now(tz_tokyo)
>>> print(dt2)
2021-02-20 11:12:50.983476+09:00
>>>

・datetime クラスの today メソッドでも同じようにローカルにおける現在の日付と時刻を持つインスタンスが作成することができます。 today メソッドの場合は引数でタイムゾーンを指定することはできません。

・書式
datetime.today()

サンプルコード
>>> import datetime
>>> dt = datetime.datetime.today()
>>> print(dt)
2021-02-20 11:23:29.753526
>>>

【現在の日付の値を取得する】
現在の日付の値を持つ date クラスのインスタンスを生成するには、 date クラスの today メソッドを使用します。

・書式
date.today()

サンプルコード
>>> import datetime
>>> print(datetime.date.today())
2021-02-20
>>> print(datetime.datetime.now())
2021-02-20 16:23:20.746878
>>> tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
>>> print(datetime.datetime.now(tokyo_tz))
2021-02-20 16:23:51.505412+09:00
>>> ny_tz = datetime.timezone(datetime.timedelta(hours=-4))
>>> print(datetime.datetime.now(ny_tz))
2021-02-20 03:24:23.437341-04:00
>>>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

タイムゾーンのインスタンス

2021年02月19日 | Python
タイムゾーンのインスタンスを生成する

【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【timezoneクラス】
timezone クラスはタイムゾーンの値を扱うクラスです。
コンストラクタは
class datetime.timezone(offset, name=None)
→offset には時刻差を表すオブジェクトである

タイムゾーンの場合は、 UTC との時間に関する差を指定します。東京(日本)のタイムゾーンを取得するには hours=9 、ニューヨーク(アメリカ合衆国)のタイムゾーンを取得するには hours=-5 を指定します。

サンプルコード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import datetime
>>> print(datetime.timezone(datetime.timedelta(hours=9)))
UTC+09:00
>>> print(datetime.timezone(datetime.timedelta(hours=-4)))
UTC-04:00
>>> print(datetime.timezone.utc)
UTC
>>>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Python--日付と時刻の情報取得

2021年02月17日 | Python
日付と時刻の情報を指定してインスタンスを生成する

【開発環境】
OS:Win10(64ビット)
言語:Python3.8.5(64bit)
Python の統合開発環境:IDLE
IDLEの操作は別サイト参照のこと

【datetimeクラス】
datetime クラスは日付と時刻の両方の値を扱うクラスです。

1)コンストラクタは?
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

2)引数の意味
year : 年 1 <= year <= 9999
month : 月 1 <= month <= 12
day : 日 1 <= day <= 指定された月と年における日数
hour : 時 0 <= hour < 24
minute : 分 0 <= minute < 60
second : 秒 0 <= minute < 60
microsecon : マイクロ秒 0 <= microsecond < 1000000
tzinfo : タイムゾーン
fold : 夏時間を考慮する場合は 1 そうでない場合は 0

サンプルコード
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
datetime クラスは datetime モジュールに含まれる
>>> import datetime
>>> dt1 = datetime.datetime(2020, 7, 21)
>>> print(dt1)
2020-07-21 00:00:00
>>> dt2 = datetime.datetime(2020, 7, 21, 6, 12, 30, 551)
>>> print(dt2)
2020-07-21 06:12:30.000551
>>> tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
>>> dt3 = datetime.datetime(2020, 7, 21, 6, 12, 30, 551, tokyo_tz)
>>> print(dt3)
2020-07-21 06:12:30.000551+09:00
>>>

【dateクラス】
date クラスは日付の値を扱うクラス
・コンストラクタは
class datetime.date(year, month, day)

引数の意味と指定できる値の範囲
year : 年 1 <= year <= 9999
month : 月 1 <= month <= 12
day : 日 1 <= day <= 指定された月と年における日数

サンプルコード
>>> import datetime
>>> d = datetime.date(2020, 7, 21)
>>> print(d)
2020-07-21
>>>

【timeクラス】
time クラスは時刻の値を扱うクラスです。
・コンストラクタ
class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

引数の意味と指定できる値の範囲
hour : 時 0 <= hour < 24
minute : 分 0 <= minute < 60
second : 秒 0 <= minute < 60
microsecon : マイクロ秒 0 <= microsecond < 1000000
tzinfo : タイムゾーン
fold : 夏時間を考慮する場合は 1 そうでない場合は 0

サンプルコード
>>> import datetime
>>> t1 = datetime.time(6, 12, 30, 551)
>>> print(t1)
06:12:30.000551
>>> tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
>>> t2 = datetime.time(6, 12, 30, 551, tokyo_tz)
>>> print(t2)
06:12:30.000551+09:00
>>>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする