ฉันกำลังใช้:
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' คั่น/
ไป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 นั่นคือสิ่งที่ฉันตั้งใจจะแนะนำ
print(date.today())
>> "2018-12-16" ?? lol และรับค่า int ได้อย่างง่ายดายt.year,t.month,t.day+1
>> (2018, 12, 17) ที่ไหนt = date.today()
และความจริงที่ผู้คนไม่ต้องเรียกลูกศรสีเขียวเพื่อบอกเวลา โอ้พระเจ้านี้เป็นรหัสมากเกินไปที่จะจำ ...
import datetime
ต่างกันimport arrow
อย่างไร แน่นอนว่ามีอยู่แล้วภายใน แต่ถ้าarrow
มีรูปแบบที่สะดวกกว่าแล้วทำไมไม่ใช้ล่ะ
arrow
? แต่สำหรับโครงการที่เรียบง่ายมากมายมันไม่จำเป็นเลย นอกจากนี้ในโครงการภายใน บริษัท หลายแห่ง ppl จำเป็นต้องได้รับการอนุมัติสำหรับการรวมไลบรารีใหม่
ฉันใช้isoformat()
ฟังก์ชั่นนี้เสมอ
from datetime import date
today = date.today().isoformat()
print(today) # '2018-12-05'
โปรดทราบว่าสิ่งนี้ยังทำงานบนวัตถุ datetime หากคุณต้องการเวลาในรูปแบบมาตรฐานเช่นกัน
from datetime import datetime
now = datetime.today().isoformat()
print(now) # '2018-12-05T11:15:55.126382'
คำตอบอื่น ๆ แนะนำให้ใช้ python datetime.datetime
แต่ในขณะที่ @Bill Bell กล่าวว่ามีห้องสมุดอื่น ๆ ที่ให้บริการdatetime
อินเทอร์เฟซที่ง่ายกว่าไม่ว่าจะเป็นบริการหรือเป็นส่วนหนึ่งของระบบนิเวศขนาดใหญ่ของ API ที่นี่มีห้องสมุดสองแห่งที่ทำงานด้วยกันdatetimes
ง่ายมาก
คุณสามารถใช้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'))
นอกจากนี้คุณยังสามารถรับtomorrow()
หรือyesterday()
เดทได้โดยตรงโดยไม่ต้องดำเนินการทางคณิตศาสตร์เพิ่มเติม timedelta
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')