ฉันจะรับรูปแบบสตริงของเวลาวันที่ปัจจุบันใน python ได้อย่างไร


113

ตัวอย่างเช่นในวันที่ 5 กรกฎาคม 2010 ฉันต้องการคำนวณสตริง

 July 5, 2010

สิ่งนี้ควรทำอย่างไร?

คำตอบ:


227

คุณสามารถใช้datetimeโมดูลเพื่อทำงานกับวันที่และเวลาใน Python strftimeวิธีช่วยให้คุณในการผลิตแทนสายของวันที่และเวลาที่มีรูปแบบที่คุณระบุ

>>> import datetime
>>> datetime.date.today().strftime("%B %d, %Y")
'July 23, 2010'
>>> datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")
'10:36AM on July 23, 2010'

34
#python3

import datetime
print(
    '1: test-{date:%Y-%m-%d_%H:%M:%S}.txt'.format( date=datetime.datetime.now() )
    )

d = datetime.datetime.now()
print( "2a: {:%B %d, %Y}".format(d))

# see the f" to tell python this is a f string, no .format
print(f"2b: {d:%B %d, %Y}")

print(f"3: Today is {datetime.datetime.now():%Y-%m-%d} yay")

1: test-2018-02-14_16: 40: 52.txt

2a: 04 มีนาคม 2018

2b: 04 มีนาคม 2018

3: วันนี้คือ 2018-11-11 เย้


คำอธิบาย:

การใช้รูปแบบสตริงใหม่เพื่อแทรกค่าลงในสตริงที่ตัวยึดตำแหน่ง {} ค่าคือเวลาปัจจุบัน

จากนั้นแทนที่จะแสดงค่าดิบเป็น {} ให้ใช้การจัดรูปแบบเพื่อรับรูปแบบวันที่ที่ถูกต้อง

https://docs.python.org/3/library/string.html#formatexamples


คำตอบของคุณถูกระบุว่ามีคุณภาพต่ำเนื่องจากเป็นแบบใช้รหัสเท่านั้น ลองอธิบายคำตอบของคุณในเชิงลึกมากขึ้น
Derek Brown

1
คำตอบที่ดีที่สุดของ Probs
nulltron

สิ่งที่ไม่fอยู่ในค่าเฉลี่ยprint(f"3?
Lei Yang

@ lei-yang นี่คือคำอธิบาย: realpython.com/python-f-stringsจะทำเครื่องหมายสตริงเป็นสตริง f จากนั้น python จะค้นหา {} ที่มีรหัส / ตัวแปรอยู่ในนั้นและวางเนื้อหาในสตริง เป็นการเพิ่มการจัดรูปแบบสตริง python3.6 ล่าสุด
Pieter

ด้านล่างของหน้านี้https://docs.python.org/3/library/datetime.htmlแสดงตัวยึดตำแหน่งที่ชอบ%Bและสิ่งที่เป็นตัวแทน
James Toomey


6

หากคุณไม่สนใจเกี่ยวกับการจัดรูปแบบและคุณต้องการวันที่ที่รวดเร็วคุณสามารถใช้สิ่งนี้:

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