私が使用しています:
str(datetime.datetime.today()).split()[0]
今日の日付をYYYY-MM-DD
フォーマットで返します。
これを達成するためのそれほど粗くない方法はありますか?
私が使用しています:
str(datetime.datetime.today()).split()[0]
今日の日付をYYYY-MM-DD
フォーマットで返します。
これを達成するためのそれほど粗くない方法はありますか?
回答:
あなたはstrftimeを使うことができます:
from datetime import datetime
datetime.today().strftime('%Y-%m-%d')
さらに、最後にゼロ詰めの時間、分、秒を探している人のために:(Gabriel Staplesによるコメント)
datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
datetime.datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
time.strftime("%Y-%m-%d")
ですか?
datetime.utcnow().strftime('%Y-%m-%d')
date
これが利用できるだけでなく、持っているdatetime
datetime.date.today()
結果を使用して変換できますdatetime.date
オブジェクトをして文字列にます。
from datetime import date
today = str(date.today())
print(today) # '2017-12-26'
/
ですか?
date.today().strftime('%Y/%m/%d')
.
を「DMY」、セパレーター/
をto 、セパレーターをM/D/Y
と想定-
しY-M-D
ます。誰もがこれらのガイドラインに従うわけではありませんが、誰もがに切り替えていない限り、国際的に日付を読むのに役立ちますY-M-D
。
面白いコードを覚えるのが好きなら、Datetimeはとても素敵です。シンプルさを好みませんか?
>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'
このモジュールは、あなたの意味を理解するのに十分なほど賢いです。
ただしてくださいpip install arrow
。
補遺:この回答で問題が発生した人への回答として、Pythonで日付を処理するための代替アプローチの1つを矢印で表しています。それはほとんど私が提案するつもりだったものです。
print(date.today())
>>「2018-12-16」よりはどうですか?笑って簡単にint値を取得t.year,t.month,t.day+1
>>(2018、12、17)ここt = date.today()
で、人々は緑の矢印を呼び出して時間を知らせる必要はありません。コードが多すぎて覚えられない...
import datetime
違うのimport arrow
?確かに1つは組み込まれていarrow
ますが、より便利な形式を提供する場合は、それを使用しないのはなぜですか?
arrow
でしょうか?しかし、多くの単純なプロジェクトでは、それは単に不要です。また、多くの社内プロジェクトでは、PPLは新しいライブラリを含めるための承認を得る必要があります。
他の回答はpythonの使用を示唆していますdatetime.datetime
が、@ Bill Bellが言ったdatetime
ように、サービスとして、またはAPIのより大きなエコシステムの一部として、より単純なインターフェースを提供する他のライブラリがあります。以下は、作業をdatetimes
非常に簡単にする2つのライブラリです。
pandasライブラリpd.to_datetime
から使用できます。返されるものに応じて、さまざまなオプションがあります。
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
Python datetimeオブジェクトとして、
pd.to_datetime('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 50, 42, 587629)
フォーマットされた日付文字列として、
pd.to_datetime('today').isoformat()
# '2019-04-18T04:03:32.493337'
# Or, `strftime` for custom formats.
pd.to_datetime('today').strftime('%Y-%m-%d')
# '2019-03-27'
タイムスタンプから日付のみを取得するには、を呼び出しますTimestamp.date
。
pd.to_datetime('today').date()
# datetime.date(2019, 3, 27)
とは別にto_datetime
、以下をTimestamp
使用してオブジェクトを直接インスタンス化できます。
pd.Timestamp('today') # pd.Timestamp('now')
# Timestamp('2019-04-18 03:43:33.233093')
pd.Timestamp('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 53, 46, 220068)
タイムスタンプのタイムゾーンを認識させたい場合は、tz
引数にタイムゾーンを渡します。
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
あなたが作業している場合は、振り子、いくつかの興味深い選択肢があります。を使用して現在のタイムスタンプを取得するか、を使用してnow()
今日の日付を取得できますtoday()
。
import pendulum
pendulum.now()
# DateTime(2019, 3, 27, 0, 2, 41, 452264, tzinfo=Timezone('America/Los_Angeles'))
pendulum.today()
# DateTime(2019, 3, 27, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
さらに、追加のtimedelta演算を行わなくても、日付を直接取得しtomorrow()
たりできますyesterday()
。
pendulum.yesterday()
# DateTime(2019, 3, 26, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
pendulum.tomorrow()
# DateTime(2019, 3, 28, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
利用可能なさまざまなフォーマットオプションがあります。
pendulum.now().to_date_string()
# '2019-03-27'
pendulum.now().to_formatted_date_string()
# 'Mar 27, 2019'
pendulum.now().to_day_datetime_string()
# 'Wed, Mar 27, 2019 12:04 AM'
非常に遅い答えですが、使用できます:
import time
today = time.strftime("%Y-%m-%d")
# 2020-02-14
使用できます
>>> from datetime import date
>>> date.today().__str__()
'2019-10-05'
str(date.today())
もっと良いでしょう
これはシンプルですが、おそらく何とか非効率的でバグが多いので、私はこれを好みます。強力なエラー防止プログラムが必要な場合は、シェルコマンドの終了コードを確認する必要があります。
os.system('date +%Y-%m-%d')