Python |タイムゾーン変換

| | | | | | | |

Pythonの日付と時刻の要素は、単純なものでも注意深いものでもかまいません。 datetime要素にtzinfoがある場合、この時点でそれはわかります。他の何か、日付と時刻は素朴です。日時オブジェクトのタイムゾーンを明確にするには、抽象基本クラスtzinfoを定義します。いずれにせよ、Python datetimeライブラリは、単にtzinfoの概念的な基本クラスを特徴付け、それを他の人に任せて、実際にtzinfoの作成を実装します。ここで、tz dateutilモジュールが登場します— OSのタイムゾーン情報からアップストリームのタイムゾーンを切り替えるために必要なすべてのものを提供します。

設定:

pipまたはeasy_installdateutilを使用してインストールします。オペレーティングシステムにタイムゾーンデータがあることを確認してください。

Linuxでは、これは通常 / usr / share / zoneinfo にあり、Ubuntuパッケージはtzdataと呼ばれます。 / usr / share / zoneinfo にあるファイルとディレクトリの数(America/やEurope/など)の場合は、続行する準備ができています。

UTCオブジェクトを取得するtzinfo— tz.tzutc()

を呼び出すclass = "plain"> dateutil import tz

tz.tzutc()

 tzutc()

<を呼び出すと、オフセットは0になります。 code> utcoffset()メソッドとUTC日付/時刻オブジェクト。


インポート日時

tz.tzutc()。 utcoffset(datetime.datetime.utcnow())

 datetime.timedelta(0)

パスを gettz()でタイムゾーンをファイルして、他のタイムゾーンのtzinfoオブジェクトを取得します。


tz.gettz( `US / Pacific`

< / table>

 tzfile(`/ usr / share / zoneinfo / US / Pacific`)

< / p>

tz.gettz( `ヨーロッパ/パリ`

 tzfile(`/ usr / share / zoneinfo / Europe / Paris` )

tz.gettz( `米国/太平洋` )。 utcoffset(datetime.datetime.utcnow())

 datetime.timedelta(-1、61200)

変更するにはUTCからUTC以外の時刻と日付の要素の場合、タイムゾーンを覚えておく必要があります。信頼できる時刻をUTCに変更しようとすると、ValueError例外が発生します。ナイーブな日時のタイムゾーンを覚えておくために、基本的には replace()戦略を必要なtzinfoで呼び出します。 datetime要素にtzinfoが含まれると、その時点で tz.tzutc()を指定してastimezone()メソッドを呼び出すことでUTCを変更できます。

< / p>

abc = tz.gettz( `US / Pacific`

dat = datetime.datetime( 2010 9 25 10 36

dat.tzinfo
dat.astimezone(tz。 tzutc())

トレースバック(最後の最後の呼び出し):ファイル "/ u sr / lib / python2.6 / doctest.py "、1228行目、__ run compileflags、1)test.globsファイル" "、1行目、dat.astimezone(tz.tzutc())ValueError:astimezone()ナイーブな日時に適用される

dat.replace(tzinfo = abc)

 datetime.datetime(2010、9、25、10、36、tzinfo = tzfile(`/ usr / share / zoneinfo / US / Pacific`))

すべてが作業の背後にあります&#8212;

  • tzutc要素とtzfile要素は、tzinfoの2つのサブクラスです。
  • すべてを考慮すると、タイムゾーンを変更するための正しいUTCオフセット(tzutcの場合は0)を知っています。
  • tzfile要素は、基本的なカウンターウェイト情報について作業構造zoneinfoドキュメントをスキャンする方法を理解しています。
  • 要素ntadatetimeのreplace()戦略は、名前&#8212;と同じように機能します。それは品質に取って代わります。
  • 日時にtzinfoがある場合、astimezone()戦略では、UTCカウンターウェイトを使用して時間を考慮し、現在のtzinfoを新しいtzinfoに置き換える可能性があります。

コード: tzinfosキーワード引数をdateutilパーサーに渡して、認識されないタイムゾーンを検出します


parser.parse( `2010年8月4日水曜日午後6時30分(CDT)`

ファジー = True

datetime。日時(2010、8、4、18、30)

tzinfos = { `CDT` :tz.gettz( `US / Central` )}

parser.parse( `2010年8月4日水曜日午後6時30分(CDT)`

ファジー = True 、tzinfos = tzinfos)

 datetime.datetime (2010、8、4、18、30、tzinfo = tzfile(`/ usr / share / zoneinfo / US / Central`))

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method