Pythonでの日時現在の年と月


99

現在の年と月を日時にする必要があります。

私はこれを使用します:

datem = datetime.today().strftime("%Y-%m")
datem = datetime.strptime(datem, "%Y-%m")

別の方法はありますか?


どういう意味date.today().strftime("%Y-%m")ですか?
00schneider

回答:


124

使用する:

from datetime import datetime
today = datetime.today()
datem = datetime(today.year, today.month, 1)

私はあなたが月の最初が欲しいと思います。


2
@ user3778327:today変数にはすでに現在の年と月があります。
jfs 2015年

19
このソリューションでfrom datetime import datetimeは、単にではなく、必ず使用してくださいimport datetime
jpobst 2017

@jpobst Python3.8.1とdatetime-4.3zope.interface-4.7.1を使用していますが、上記のコード(import datetimeを使用)は機能します。datetime import datetimeから書き込むとAttributeErrorが
jeppoo1 2010

138

このソリューションを試してください:

from datetime import datetime

currentSecond= datetime.now().second
currentMinute = datetime.now().minute
currentHour = datetime.now().hour

currentDay = datetime.now().day
currentMonth = datetime.now().month
currentYear = datetime.now().year

1
動作します、ありがとう!他の回答で使用されている.now()よりも有利な点はあり.today()ますか?now()機能は、それがより一般的に使われている、短いです...しかし、すべての1をされて知りたいときに、他の上のいずれかを使用するにはどのような理由があり、それは何年ですか?
リュック

1
@hashlashありがとう!他の人にクリックを保存するには:いや、本当に
リュック

何をしfrom datetime、なぜそれが必要なのですか?
カドイズ

1
@ Cadoiz-datetimeパッケージにはいくつかのサブモジュールがあります-日付だけを扱うdateサブモジュール(from datetime import datetime、時刻を扱うサブモジュール、そして残念ながらdatetime両方を行う名前の付いたサブモジュールです。ありますtimedeltaし、tzinfoそこに。一つは、単に可能性がありimport datetime、すべてのサブモジュールで、全体のパッケージを取得するが、その後、メソッド呼び出しは次のようになりますdatetime.datetime.now()datetime.date.today()。通常、必要なコンポーネントだけをインポートする方が、いくつかの理由で優れています。
dannysauer

69

使用する:

from datetime import datetime

current_month = datetime.now().strftime('%m') // 02 //This is 0 padded
current_month_text = datetime.now().strftime('%h') // Feb
current_month_text = datetime.now().strftime('%B') // February

current_day = datetime.now().strftime('%d')   // 23 //This is also padded
current_day_text = datetime.now().strftime('%a')  // Fri
current_day_full_text = datetime.now().strftime('%A')  // Friday

current_weekday_day_of_today = datetime.now().strftime('%w') //5  Where 0 is Sunday and 6 is Saturday.

current_year_full = datetime.now().strftime('%Y')  // 2018
current_year_short = datetime.now().strftime('%y')  // 18 without century

current_second= datetime.now().strftime('%S') //53
current_minute = datetime.now().strftime('%M') //38
current_hour = datetime.now().strftime('%H') //16 like 4pm
current_hour = datetime.now().strftime('%I') // 04 pm

current_hour_am_pm = datetime.now().strftime('%p') // 4 pm

current_microseconds = datetime.now().strftime('%f') // 623596 Rarely we need.

current_timzone = datetime.now().strftime('%Z') // UTC, EST, CST etc. (empty string if the object is naive).

参照:8.1.7。strftime()およびstrptime()の動作

参照:strftime()およびstrptime()の動作

上記のことは、現在または今日だけでなく、任意の日付解析に役立ちます。これは、任意の日付解析に役立ちます。

e.g.
my_date = "23-02-2018 00:00:00"

datetime.strptime(str(my_date),'%d-%m-%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S+00:00')

datetime.strptime(str(my_date),'%d-%m-%Y %H:%M:%S').strftime('%m')

等々...



7

いつでも部分文字列メソッドを使用できます。

import datetime;

today = str(datetime.date.today());
curr_year = int(today[:4]);
curr_month = int(today[5:7]);

これにより、現在の月と年が整数形式で取得されます。それらを文字列にしたい場合は、変数curr_yearとに値を割り当てるときに「int」の優先順位を削除するだけcurr_monthです。


5
これは悪いです。なぜそれをキャストしてから文字列操作を行う必要があるのですか?datetime.datetime.now().month優れている。
アーメド

5
>>> from datetime import date
>>> date.today().month
2
>>> date.today().year
2020
>>> date.today().day
13

5

遅い答えですが、あなたも使うことができます:

import time
ym = time.strftime("%Y-%m")

1
遅くなりますが、間違いではなく、日時を使用するよりも明確です。ありがとう:)。
ivanleoncz

0

質問では、特に日時を使用するように求められます。

これは、日時のみを使用する方法です。

year = datetime.now().year
month = datetime.now().month
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.