Saya menggunakan:
str(datetime.datetime.today()).split()[0]
untuk mengembalikan tanggal hari ini dalam YYYY-MM-DD
format.
Apakah ada cara yang kurang kasar untuk mencapai ini?
Saya menggunakan:
str(datetime.datetime.today()).split()[0]
untuk mengembalikan tanggal hari ini dalam YYYY-MM-DD
format.
Apakah ada cara yang kurang kasar untuk mencapai ini?
Jawaban:
Anda dapat menggunakan strftime :
from datetime import datetime
datetime.today().strftime('%Y-%m-%d')
Selain itu, bagi siapa pun yang mencari Jam, Menit, dan Kedua di bagian akhir: (Komentar oleh 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
ini tersedia jugadatetime
Anda dapat menggunakan datetime.date.today()
dan mengonversi datetime.date
objek yang dihasilkan menjadi string:
from datetime import date
today = str(date.today())
print(today) # '2017-12-26'
/
?
date.today().strftime('%Y/%m/%d')
.
menjadi 'DMY', pemisah /
untuk M/D/Y
dan pemisah -
untuk Y-M-D
. Meskipun tidak semua orang mengikuti pedoman ini, itu akan membantu membaca tanggal secara internasional selama tidak semua orang beralih ke Y-M-D
.
Datetime hanya indah jika Anda suka mengingat kode lucu. Tidakkah Anda lebih suka kesederhanaan?
>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'
Modul ini cukup pintar untuk memahami apa yang Anda maksud .
Lakukan saja pip install arrow
.
Tambahan: Sebagai jawaban bagi mereka yang menjadi berolahraga atas jawaban ini izinkan saya hanya mengatakan bahwa panah merupakan salah satu pendekatan alternatif untuk berurusan dengan tanggal dengan Python. Itu sebagian besar yang saya maksudkan.
print(date.today())
>> "2018-12-16" ?? lol dan mudah mendapatkan nilai int t.year,t.month,t.day+1
>> (2018, 12, 17) di mana t = date.today()
dan fakta orang tidak perlu memanggil panah hijau untuk memberi tahu mereka waktu. oh Tuhan, ini terlalu banyak kode untuk diingat ...
import datetime
bedanya dengan import arrow
? Tentu ada yang built-in, tetapi jika arrow
menyediakan format yang lebih nyaman, mengapa tidak menggunakannya?
arrow
? Tapi, untuk banyak proyek sederhana, itu tidak perlu. Juga, di banyak proyek internal perusahaan, ppl perlu mendapatkan persetujuan untuk memasukkan perpustakaan baru.
Saya selalu menggunakan isoformat()
fungsi untuk ini.
from datetime import date
today = date.today().isoformat()
print(today) # '2018-12-05'
Perhatikan bahwa ini juga berfungsi pada objek datetime jika Anda memerlukan waktu dalam format standar juga.
from datetime import datetime
now = datetime.today().isoformat()
print(now) # '2018-12-05T11:15:55.126382'
Jawaban lain menyarankan penggunaan python datetime.datetime
, tetapi seperti yang dikatakan @Bill Bell, ada perpustakaan lain yang menawarkan datetime
antarmuka yang lebih sederhana baik sebagai layanan atau sebagai bagian dari ekosistem API yang lebih besar. Berikut adalah dua perpustakaan yang membuat bekerja dengan datetimes
sangat sederhana.
Anda dapat menggunakan pd.to_datetime
dari panda library. Berikut adalah berbagai opsi, tergantung pada apa yang Anda inginkan dikembalikan.
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
Sebagai objek datetime python ,
pd.to_datetime('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 50, 42, 587629)
Sebagai string tanggal yang diformat,
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'
Untuk mendapatkan hanya tanggal dari cap waktu, hubungi Timestamp.date
.
pd.to_datetime('today').date()
# datetime.date(2019, 3, 27)
Selain itu to_datetime
, Anda dapat langsung instantiate Timestamp
objek menggunakan,
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)
Jika Anda ingin membuat zona waktu Timestamp Anda sadar, berikan zona waktu ke tz
argumen.
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
Jika Anda bekerja dengan pendulum , ada beberapa pilihan menarik. Anda bisa mendapatkan cap waktu saat ini menggunakan now()
atau menggunakan tanggal hari ini 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'))
Selain itu, Anda juga bisa mendapatkan tomorrow()
atau yesterday()
tanggal 's langsung tanpa harus melakukan timedelta tambahan aritmatika.
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'))
Ada berbagai opsi pemformatan yang tersedia.
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'
Jawaban sangat terlambat, tetapi Anda dapat menggunakan:
import time
today = time.strftime("%Y-%m-%d")
# 2020-02-14
Kamu bisa memakai,
>>> from datetime import date
>>> date.today().__str__()
'2019-10-05'
str(date.today())
masih lebih baik
Saya lebih suka ini, karena ini sederhana, tetapi mungkin entah bagaimana tidak efisien dan buggy. Anda harus memeriksa kode keluar dari perintah shell jika Anda ingin program yang sangat tahan kesalahan.
os.system('date +%Y-%m-%d')