วันที่และเวลาปีปัจจุบันและเดือนใน 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

19
สำหรับวิธีนี้อย่าลืมใช้from datetime import datetimeแทนที่จะใช้เพียงแค่import datetime
jpobst

@jpobst ฉันใช้ Python 3.8.1 & datetime-4.3 zope.interface-4.7.1 และโค้ดด้านบน (พร้อมวันที่นำเข้า ) ใช้ได้กับฉัน ถ้าฉันเขียนจาก datetime import datetimeมันจะพ่นAttributeError
jeppoo1

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()ฟังก์ชั่นสั้นก็ใช้มากกว่าปกติ ... แต่จะมีเหตุผลที่จะใช้อย่างใดอย่างหนึ่งในช่วงอื่น ๆ เมื่อทุกคนต้องการที่จะรู้ว่าเป็นที่ใด ๆปีสิ่งที่มันคืออะไร?
Luc

1
@hashlash ขอบคุณ! เพื่อช่วยคนอื่นคลิก: ไม่ไม่จริง
Luc

สิ่งที่ไม่from datetimeทำและทำไมคุณต้องการหรือไม่
Cadoiz

1
@Cadoiz - แพ็คเกจวันที่และเวลามีโมดูลย่อยสองสามโมดูล - dateโมดูลย่อย ( from datetime import date) ซึ่งเกี่ยวข้องกับวันที่timeโมดูลย่อยที่เกี่ยวข้องกับเวลาและdatetimeโมดูลย่อยที่มีชื่อน่าเสียดายซึ่งทำทั้งสองอย่าง นอกจากนี้ยังมีtimedeltaและtzinfoในการมี หนึ่งก็อาจimport datetimeจะได้รับแพคเกจทั้งหมดที่มี submodules ทั้งหมด แต่แล้ววิธีการโทรจะมีลักษณะเหมือนหรือ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 () Behavior

การอ้างอิง: strftime () และ strptime () Behavior

สิ่งต่างๆข้างต้นมีประโยชน์สำหรับการแยกวิเคราะห์วันที่ใด ๆ ไม่เพียง แต่ตอนนี้หรือวันนี้ จะมีประโยชน์สำหรับการแยกวิเคราะห์วันที่ใด ๆ

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]);

ซึ่งจะทำให้คุณได้รับเดือนและปีปัจจุบันในรูปแบบจำนวนเต็ม หากคุณต้องการให้เป็นสตริงคุณก็ต้องลบลำดับความสำคัญ "int" ออกในขณะที่กำหนดค่าให้กับตัวแปรcurr_yearและcurr_month.


5
นี้ไม่ดี. ทำไมต้องแคสต์แล้วทำการปรับแต่งสตริง? datetime.datetime.now().monthจะดีกว่า.
Ahmed



0

คำถามขอให้ใช้ datetime โดยเฉพาะ

นี่เป็นวิธีที่ใช้วันที่และเวลาเท่านั้น:

year = datetime.now().year
month = datetime.now().month
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.