harap dicatat, jawaban yang paling banyak dipilih adalah untuk waktu-naif-waktu-naif, sementara kita melihat bahwa dalam lingkungan produksi semakin banyak layanan di seluruh dunia yang terhubung bersama dan waktu-sadar-waktu menjadi standar yang diperlukan
Akan lebih baik jika jawaban ini mencakup zona waktu (mungkin UTC sebagai contoh) dan mungkin mulai dengan time.time ().
Greg Lindahl
4
@Toskan format itu bukan bagian dari pertanyaan, jadi seharusnya tidak menjadi bagian dari jawabannya. Sudah ada tautan yang disediakan untuk lebih banyak dokumentasi modul yang berisi hal-hal seperti pemformatan.
JiyuuSensei
Versi Python manakah dari jawaban asli yang diberikan? Cukup mengetikkan datetime.datetime.now()konsol interaktif Python 2.7 saya (IronPython belum diperbarui) memberi saya perilaku yang sama dengan contoh yang lebih baru menggunakan print()dalam jawabannya. Saya belum berhasil mereplikasi apa yang ditunjukkan oleh jawaban aslinya (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Bukannya saya benar-benar ingin, perilaku print () lebih disukai, tetapi saya ingin tahu.)
RTHarston
@ BobVicktor: Python 2.7, 3.7 dan 3.8 semua memberikan perilaku yang sama untuk saya, tidak yakin apa yang Anda lihat.
Harley Holcombe
@ HarleyHolcombe Hmm ... mungkin itu adalah hal IronPython? Ketika saya mengetik datetime.now()sendiri itu mencetaknya sama seperti jawaban Anda menunjukkan print(datetime.now())...
Yang diminta hanyalah mendapatkan waktu saat ini, bukan untuk menampilkannya.
pppery
@ppperry, maka cukup berikan variabel ke jawaban Ray - seperti: myTime = str (datetime.now ()) .
Lukas
2
Tidak berhubungan; langkah "str" tidak berada dalam lingkup pertanyaan
pppery
4
@pppery juga tidak op mengatakan ini bukan tentang mendapatkan untaian waktu. Op sama sekali tidak mengatakan apa yang ingin mereka lakukan dengan waktu, jadi mengapa itu hal yang buruk untuk menunjukkan bagaimana mengubahnya menjadi string? Sebagian besar jawaban berbicara tentang mendapatkan string dari waktu, sehingga tampaknya menjadi kasus penggunaan umum, jadi mengapa memilih jawaban Ray? Apa gunanya hanya mendapatkan waktu tanpa tahu bagaimana melakukan sesuatu dengan itu? Anda dapat mencetaknya, atau menghitungnya, dan hanya beberapa jawaban yang menunjukkan bagaimana menghitungnya, jadi saya pikir mencetak / mendapatkan string adalah penggunaan yang umum. ;-) (Saya tahu ini tujuan saya.)
RTHarston
1
Fakta bahwa jawaban ini memiliki lebih dari 440 upvotes menunjukkan bahwa penambahan minor dari metode string adalah berguna untuk banyak orang.
John
360
Bagaimana saya mendapatkan waktu saat ini di Python?
The timemodul
The timemodul menyediakan fungsi yang memberitahu kita waktu di "detik sejak zaman" serta utilitas lainnya.
import time
Unix Epoch Time
Ini adalah format yang Anda harus dapatkan cap waktu untuk menyimpan dalam database. Ini adalah angka floating point sederhana yang dapat dikonversi ke integer. Ini juga baik untuk perhitungan dalam hitungan detik, karena mewakili jumlah detik sejak 1 Januari 1970 00:00:00, dan itu adalah lampu memori relatif terhadap representasi waktu lainnya yang akan kita lihat selanjutnya:
>>> time.time()1424233311.771502
Stempel waktu ini tidak menghitung detik kabisat, jadi ini tidak linier - detik kabisat diabaikan. Jadi, meskipun tidak setara dengan standar UTC internasional, itu dekat, dan karena itu cukup baik untuk sebagian besar kasus pencatatan.
Namun, ini tidak ideal untuk penjadwalan manusia. Jika Anda memiliki acara di masa depan yang ingin Anda lakukan pada titik waktu tertentu, Anda ingin menyimpan waktu itu dengan string yang dapat diurai menjadi objek datetime atau objek datetime serial (ini akan dijelaskan nanti).
time.ctime
Anda juga dapat mewakili waktu saat ini dengan cara yang disukai oleh sistem operasi Anda (yang berarti dapat berubah ketika Anda mengubah preferensi sistem Anda, jadi jangan mengandalkan ini untuk menjadi standar di semua sistem, seperti yang saya lihat orang lain harapkan) . Ini biasanya ramah pengguna, tetapi biasanya tidak menghasilkan string yang dapat disortir secara kronologis:
>>> time.ctime()'Tue Feb 17 23:21:56 2015'
Anda juga dapat melembabkan stempel waktu ke dalam bentuk yang dapat dibaca manusia ctime:
>>> time.ctime(1424233311.771502)'Tue Feb 17 23:21:51 2015'
Konversi ini juga tidak baik untuk penyimpanan catatan (kecuali dalam teks yang hanya akan diuraikan oleh manusia - dan dengan Pengenalan Karakter Optik dan Kecerdasan Buatan yang ditingkatkan, saya pikir jumlah kasus ini akan berkurang).
datetime modul
The datetimeModul ini juga cukup berguna di sini:
>>>import datetime
datetime.datetime.now
Ini datetime.nowadalah metode kelas yang mengembalikan waktu saat ini. Ini menggunakan time.localtimetanpa info zona waktu (jika tidak diberikan, jika tidak lihat zona waktu sadar di bawah). Ini memiliki representasi (yang akan memungkinkan Anda untuk membuat ulang objek yang setara) bergema di shell, tetapi ketika dicetak (atau dipaksa ke a str), itu dalam format yang dapat dibaca manusia (dan hampir ISO), dan jenis leksikografis setara dengan semacam kronologis:
UTC adalah standar waktu yang hampir setara dengan zona waktu GMT. (Meskipun GMT dan UTC tidak berubah untuk Daylight Savings Time, pengguna mereka dapat beralih ke zona waktu lainnya, seperti British Summer Time, selama Musim Panas.)
sadar zona waktu
Namun, tidak ada objek datetime yang kami buat sejauh ini dapat dengan mudah dikonversi ke berbagai zona waktu. Kita dapat memecahkan masalah itu dengan pytzmodul:
>>>import pytz
>>> then = datetime.datetime.now(pytz.utc)>>> then
datetime.datetime(2015,2,18,4,55,58,753949, tzinfo=<UTC>)
Secara setara, dalam Python 3 kita memiliki timezonekelas dengan timezoneinstance utc yang terpasang, yang juga membuat objek timezone sadar (tetapi untuk mengkonversi ke zona waktu lain tanpa pytzmodul berguna dibiarkan sebagai latihan untuk pembaca):
Anda juga dapat membuat objek datetime naif menyadari dengan metode pytzzona waktu localize, atau dengan mengganti atribut tzinfo (dengan replace, ini dilakukan secara membabi buta), tetapi ini lebih merupakan upaya terakhir daripada praktik terbaik:
The pytzmodul memungkinkan kita untuk membuat kita datetimebenda Zona Waktu sadar dan mengubah kali ke ratusan zona waktu yang tersedia dalam pytzmodul.
Satu seolah-olah bisa cerita bersambung obyek ini untuk waktu UTC dan toko yang dalam database, tetapi akan memerlukan jauh lebih banyak memori dan lebih rentan terhadap kesalahan daripada hanya menyimpan waktu Unix Epoch, yang saya contohkan pertama.
Cara lain untuk melihat waktu jauh lebih rentan kesalahan, terutama ketika berhadapan dengan data yang mungkin berasal dari zona waktu yang berbeda. Anda ingin tidak ada kebingungan untuk zona waktu mana string atau objek datetime serial dimaksudkan untuk.
Jika Anda menampilkan waktu dengan Python untuk pengguna, ctimeberfungsi dengan baik, tidak dalam tabel (biasanya tidak diurutkan dengan baik), tetapi mungkin dalam jam. Namun, saya pribadi merekomendasikan, ketika berhadapan dengan waktu dalam Python, baik menggunakan waktu Unix, atau datetimeobjek UTC sadar zona waktu .
Mengapa tidak bertanya kepada US Naval Observatory , pencatat waktu resmi Angkatan Laut Amerika Serikat?
import requests
from lxml import html
page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)print(tree.xpath('//html//body//h3//pre/text()')[1])
Jika Anda tinggal di area DC (seperti saya) latensi mungkin tidak terlalu buruk ...
@ C8H10N4O2 Meskipun Anda benar bahwa jawaban yang lain menganggap bahwa komputer Anda sudah mengetahui waktu yang tepat, jawaban ini mengasumsikan bahwa komputer memiliki koneksi ke internet, bahwa Anda berada di AS, dan bahwa mereka tidak akan pernah mencatat file itu / ubah tautannya. Jauh lebih banyak asumsi dalam jawaban ini daripada yang diterima. Masih pandai tidak kurang
sudobangbang
33
Menggunakan panda untuk mendapatkan waktu saat ini, agak berlebihan dalam mengatasi masalah:
import pandas as pd
print(pd.datetime.now())print(pd.datetime.now().date())print(pd.datetime.now().year)print(pd.datetime.now().month)print(pd.datetime.now().day)print(pd.datetime.now().hour)print(pd.datetime.now().minute)print(pd.datetime.now().second)print(pd.datetime.now().microsecond)
>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")01/09/201513:11
Juga, tabel ini adalah referensi yang diperlukan untuk memilih kode format yang sesuai untuk mendapatkan tanggal diformat seperti yang Anda inginkan (dari dokumentasi Python "datetime" di sini ).
strftime(time_format)mengembalikan waktu lokal saat ini sebagai string yang sesuai dengan yang diberikan time_format. Catatan: time.strftime()dan datetime.strftime()mendukung set direktif yang berbeda misalnya, %ztidak didukung oleh time.strftime()pada Python 2 .
jfs
1
Apakah lebih baik menggunakan datetime daripada berlatih waktu?
Kristen G.
2
Banyak timefungsi modul adalah pembungkus tipis di sekitar fungsi C yang sesuai. datetimeadalah tingkat yang lebih tinggi dan biasanya lebih portabel.
jfs
24
jika Anda sudah menggunakan numpy maka secara langsung Anda dapat menggunakan fungsi numpy.datetime64 ().
import numpy as np
str(np.datetime64('now'))
hanya untuk tanggal:
str(np.datetime64('today'))
atau, jika Anda sudah menggunakan panda maka Anda dapat menggunakan fungsi pandas.to_datetime ()
datetime.now()mengembalikan waktu saat ini sebagai objek datetime naif yang mewakili waktu di zona waktu lokal. Nilai itu mungkin ambigu misalnya, selama transisi DST ("mundur"). Untuk menghindari ambiguitas, zona waktu UTC harus digunakan:
from datetime import datetime
utc_time = datetime.utcnow()print(utc_time)# -> 2014-12-22 22:48:59.916417
Atau objek sadar zona waktu yang memiliki info zona waktu terkait (Python 3.2+):
from datetime import datetime, timezone
now = datetime.now(timezone.utc).astimezone()print(now)# -> 2014-12-23 01:49:25.837541+03:00
import datetime
date_time = datetime.datetime.now()
date = date_time.date()# Gives the date
time = date_time.time()# Gives the timeprint date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond
Apakah dir(date)atau variabel apa pun termasuk paket. Anda bisa mendapatkan semua atribut dan metode yang terkait dengan variabel.
Saya pikir Anda bermaksud mengatakan "datetime.now (). Strftime (...)"
hlin117
ya itu bisa dilakukan seperti yang Anda katakan. "datetime.datetime.now (). strftime ("% H:% M:% S:% MS ")"
user2030113
3
% MS tidak memberi Anda milidetik !!
ZF007
15
Secara default, now()fungsi mengembalikan output dalam YYYY-MM-DD HH:MM:SS:MSformat. Gunakan skrip sampel di bawah ini untuk mendapatkan tanggal dan waktu saat ini dalam skrip Python dan mencetak hasil di layar. Buat file getDateTime1.pydengan konten di bawah ini.
Pertanyaan ini tidak memerlukan jawaban baru hanya untuk itu ... mainan / modul mengkilap baru, bagaimanapun, cukup pembenaran. Itu menjadi perpustakaan Pendulum , yang tampaknya melakukan hal-hal yang dicoba panah, kecuali tanpa cacat dan bug yang melekat yang menimpa panah.
Ada banyak standar yang perlu diperhatikan, termasuk beberapa RFC dan ISO, yang perlu dikhawatirkan. Pernah membuat mereka bingung; jangan khawatir, lihatlah sedikit. dir(pendulum.constants)Ada sedikit lebih banyak daripada format RFC dan ISO di sana.
Ketika kita mengatakan lokal, apa artinya? Maksud saya:
Mungkin sebagian besar dari Anda berarti di tempat lain.
Dan seterusnya. Singkat cerita: Pendulum berupaya melakukan untuk tanggal dan waktu apa permintaan dilakukan untuk HTTP. Ini patut dipertimbangkan, terutama untuk kemudahan penggunaan dan dokumentasi yang luas.
Saya ingin mendapatkan waktu dengan milidetik. Cara mudah untuk mendapatkannya:
import time, datetime
print(datetime.datetime.now().time())# 11:20:08.272239# Or in a more complicated wayprint(datetime.datetime.now().time().isoformat())# 11:20:08.272239print(datetime.datetime.now().time().strftime('%H:%M:%S.%f'))# 11:20:08.272239# But do not use this:print(time.strftime("%H:%M:%S.%f", time.localtime()), str)# 11:20:08.%f
Tetapi saya hanya menginginkan milidetik , bukan? Cara terpendek untuk mendapatkannya:
import time
time.strftime("%H:%M:%S", time.localtime())+'.%d'%(time.time()%1*1000)# 11:34:23.751
Tambah atau hapus nol dari perkalian terakhir untuk menyesuaikan jumlah titik desimal, atau cukup:
Berikut ini adalah apa yang saya gunakan untuk mendapatkan waktu tanpa harus memformat. Beberapa orang tidak suka metode split, tetapi ini berguna di sini:
Karena belum ada yang menyebutkannya, dan ini adalah sesuatu yang saya temui baru-baru ini ... metode fromutc () pytz timezone yang dikombinasikan dengan utcnow datetime () adalah cara terbaik yang saya temukan untuk mendapatkan waktu saat ini yang berguna (dan tanggal) di zona waktu apa pun.
Anehnya, semua jawaban di atas tidak menyebutkan zona waktu. Anda juga harus memasukkan strftime untuk mendapatkan format yang Anda inginkan.
GraphicalDot
1
Saya tidak memasukkannya karena sudah tercakup dalam jawaban lain (dan tampilan format bukan bagian dari pertanyaan).
kungphu
7
Pertanyaan ini untuk Python tetapi karena Django adalah salah satu kerangka kerja yang paling banyak digunakan untuk Python, penting untuk dicatat bahwa jika Anda menggunakan Django Anda selalu dapat menggunakan timezone.now()bukan datetime.datetime.now(). Yang pertama adalah zona waktu 'sadar' sedangkan yang terakhir tidak.
Jawaban:
Menggunakan:
Dan tepat waktu:
Lihat dokumentasi untuk informasi lebih lanjut.
Untuk menyimpan pengetikan, Anda dapat mengimpor
datetime
objek daridatetime
modul:Kemudian hapus yang memimpin
datetime.
dari semua yang di atas.sumber
datetime.datetime.now()
konsol interaktif Python 2.7 saya (IronPython belum diperbarui) memberi saya perilaku yang sama dengan contoh yang lebih baru menggunakanprint()
dalam jawabannya. Saya belum berhasil mereplikasi apa yang ditunjukkan oleh jawaban aslinya (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Bukannya saya benar-benar ingin, perilaku print () lebih disukai, tetapi saya ingin tahu.)datetime.now()
sendiri itu mencetaknya sama seperti jawaban Anda menunjukkanprint(datetime.now())
...Anda bisa menggunakan
time.strftime()
:sumber
time
modul vs.datetime
modul?localtime()
alih-alihgmtime()
untuk mendapatkan waktu lokal Anda.datetime
vstime
.Untuk contoh ini, hasilnya akan seperti ini:
'2013-09-18 11:16:32'
Ini adalah daftar
strftime
arahan .sumber
Mirip dengan jawaban Harley , tetapi gunakan
str()
fungsi ini untuk format cepat-n-kotor, sedikit lebih dapat dibaca manusia:sumber
The
time
modulThe
time
modul menyediakan fungsi yang memberitahu kita waktu di "detik sejak zaman" serta utilitas lainnya.Unix Epoch Time
Ini adalah format yang Anda harus dapatkan cap waktu untuk menyimpan dalam database. Ini adalah angka floating point sederhana yang dapat dikonversi ke integer. Ini juga baik untuk perhitungan dalam hitungan detik, karena mewakili jumlah detik sejak 1 Januari 1970 00:00:00, dan itu adalah lampu memori relatif terhadap representasi waktu lainnya yang akan kita lihat selanjutnya:
Stempel waktu ini tidak menghitung detik kabisat, jadi ini tidak linier - detik kabisat diabaikan. Jadi, meskipun tidak setara dengan standar UTC internasional, itu dekat, dan karena itu cukup baik untuk sebagian besar kasus pencatatan.
Namun, ini tidak ideal untuk penjadwalan manusia. Jika Anda memiliki acara di masa depan yang ingin Anda lakukan pada titik waktu tertentu, Anda ingin menyimpan waktu itu dengan string yang dapat diurai menjadi objek datetime atau objek datetime serial (ini akan dijelaskan nanti).
time.ctime
Anda juga dapat mewakili waktu saat ini dengan cara yang disukai oleh sistem operasi Anda (yang berarti dapat berubah ketika Anda mengubah preferensi sistem Anda, jadi jangan mengandalkan ini untuk menjadi standar di semua sistem, seperti yang saya lihat orang lain harapkan) . Ini biasanya ramah pengguna, tetapi biasanya tidak menghasilkan string yang dapat disortir secara kronologis:
Anda juga dapat melembabkan stempel waktu ke dalam bentuk yang dapat dibaca manusia
ctime
:Konversi ini juga tidak baik untuk penyimpanan catatan (kecuali dalam teks yang hanya akan diuraikan oleh manusia - dan dengan Pengenalan Karakter Optik dan Kecerdasan Buatan yang ditingkatkan, saya pikir jumlah kasus ini akan berkurang).
datetime
modulThe
datetime
Modul ini juga cukup berguna di sini:datetime.datetime.now
Ini
datetime.now
adalah metode kelas yang mengembalikan waktu saat ini. Ini menggunakantime.localtime
tanpa info zona waktu (jika tidak diberikan, jika tidak lihat zona waktu sadar di bawah). Ini memiliki representasi (yang akan memungkinkan Anda untuk membuat ulang objek yang setara) bergema di shell, tetapi ketika dicetak (atau dipaksa ke astr
), itu dalam format yang dapat dibaca manusia (dan hampir ISO), dan jenis leksikografis setara dengan semacam kronologis:datetime
utcnow
Anda bisa mendapatkan objek datetime dalam waktu UTC, standar global, dengan melakukan ini:
UTC adalah standar waktu yang hampir setara dengan zona waktu GMT. (Meskipun GMT dan UTC tidak berubah untuk Daylight Savings Time, pengguna mereka dapat beralih ke zona waktu lainnya, seperti British Summer Time, selama Musim Panas.)
sadar zona waktu
Namun, tidak ada objek datetime yang kami buat sejauh ini dapat dengan mudah dikonversi ke berbagai zona waktu. Kita dapat memecahkan masalah itu dengan
pytz
modul:Secara setara, dalam Python 3 kita memiliki
timezone
kelas dengantimezone
instance utc yang terpasang, yang juga membuat objek timezone sadar (tetapi untuk mengkonversi ke zona waktu lain tanpapytz
modul berguna dibiarkan sebagai latihan untuk pembaca):Dan kami melihat kami dapat dengan mudah mengkonversi zona waktu dari objek utc asli.
Anda juga dapat membuat objek datetime naif menyadari dengan metode
pytz
zona waktulocalize
, atau dengan mengganti atribut tzinfo (denganreplace
, ini dilakukan secara membabi buta), tetapi ini lebih merupakan upaya terakhir daripada praktik terbaik:The
pytz
modul memungkinkan kita untuk membuat kitadatetime
benda Zona Waktu sadar dan mengubah kali ke ratusan zona waktu yang tersedia dalampytz
modul.Satu seolah-olah bisa cerita bersambung obyek ini untuk waktu UTC dan toko yang dalam database, tetapi akan memerlukan jauh lebih banyak memori dan lebih rentan terhadap kesalahan daripada hanya menyimpan waktu Unix Epoch, yang saya contohkan pertama.
Cara lain untuk melihat waktu jauh lebih rentan kesalahan, terutama ketika berhadapan dengan data yang mungkin berasal dari zona waktu yang berbeda. Anda ingin tidak ada kebingungan untuk zona waktu mana string atau objek datetime serial dimaksudkan untuk.
Jika Anda menampilkan waktu dengan Python untuk pengguna,
ctime
berfungsi dengan baik, tidak dalam tabel (biasanya tidak diurutkan dengan baik), tetapi mungkin dalam jam. Namun, saya pribadi merekomendasikan, ketika berhadapan dengan waktu dalam Python, baik menggunakan waktu Unix, ataudatetime
objek UTC sadar zona waktu .sumber
Melakukan
t
- angka float, bagus untuk pengukuran interval waktu.Ada beberapa perbedaan untuk platform Unix dan Windows.
sumber
Itu menampilkan GMT saat ini dalam format yang ditentukan. Ada juga
localtime()
metode.Halaman ini memiliki lebih banyak detail.
sumber
Jawaban sebelumnya adalah semua saran yang bagus, tetapi saya merasa paling mudah untuk digunakan
ctime()
:Ini memberikan representasi string yang diformat dengan baik dari waktu setempat saat ini.
sumber
Cara tercepat adalah:
sumber
Jika Anda membutuhkan waktu saat ini sebagai
time
objek:sumber
.isoformat()
ada di dokumentasi, tetapi belum di sini (ini mirip dengan jawaban @Ray Vega):sumber
Mengapa tidak bertanya kepada US Naval Observatory , pencatat waktu resmi Angkatan Laut Amerika Serikat?
Jika Anda tinggal di area DC (seperti saya) latensi mungkin tidak terlalu buruk ...
sumber
Menggunakan panda untuk mendapatkan waktu saat ini, agak berlebihan dalam mengatasi masalah:
Keluaran:
sumber
Inilah yang akhirnya saya lakukan:
Juga, tabel ini adalah referensi yang diperlukan untuk memilih kode format yang sesuai untuk mendapatkan tanggal diformat seperti yang Anda inginkan (dari dokumentasi Python "datetime" di sini ).
sumber
strftime(time_format)
mengembalikan waktu lokal saat ini sebagai string yang sesuai dengan yang diberikantime_format
. Catatan:time.strftime()
dandatetime.strftime()
mendukung set direktif yang berbeda misalnya,%z
tidak didukung olehtime.strftime()
pada Python 2 .time
fungsi modul adalah pembungkus tipis di sekitar fungsi C yang sesuai.datetime
adalah tingkat yang lebih tinggi dan biasanya lebih portabel.jika Anda sudah menggunakan numpy maka secara langsung Anda dapat menggunakan fungsi numpy.datetime64 ().
hanya untuk tanggal:
atau, jika Anda sudah menggunakan panda maka Anda dapat menggunakan fungsi pandas.to_datetime ()
atau,
sumber
Anda dapat menggunakan
time
modul:Penggunaan modal
Y
memberi satu tahun penuh, dan menggunakany
akan memberi06/02/15
.Anda juga dapat menggunakan kode berikut untuk memberikan waktu yang lebih panjang:
sumber
datetime.now()
mengembalikan waktu saat ini sebagai objek datetime naif yang mewakili waktu di zona waktu lokal. Nilai itu mungkin ambigu misalnya, selama transisi DST ("mundur"). Untuk menghindari ambiguitas, zona waktu UTC harus digunakan:Atau objek sadar zona waktu yang memiliki info zona waktu terkait (Python 3.2+):
sumber
Apakah
dir(date)
atau variabel apa pun termasuk paket. Anda bisa mendapatkan semua atribut dan metode yang terkait dengan variabel.sumber
import datetime
itu adalahdatetime.datetime.now()
\ n jikafrom datetime import datetime
maka itudatetime.now()
sumber
Secara default,
now()
fungsi mengembalikan output dalamYYYY-MM-DD HH:MM:SS:MS
format. Gunakan skrip sampel di bawah ini untuk mendapatkan tanggal dan waktu saat ini dalam skrip Python dan mencetak hasil di layar. Buat filegetDateTime1.py
dengan konten di bawah ini.Outputnya terlihat seperti di bawah ini:
sumber
Pertanyaan ini tidak memerlukan jawaban baru hanya untuk itu ... mainan / modul mengkilap baru, bagaimanapun, cukup pembenaran. Itu menjadi perpustakaan Pendulum , yang tampaknya melakukan hal-hal yang dicoba panah, kecuali tanpa cacat dan bug yang melekat yang menimpa panah.
Misalnya, jawaban atas pertanyaan awal:
Ada banyak standar yang perlu diperhatikan, termasuk beberapa RFC dan ISO, yang perlu dikhawatirkan. Pernah membuat mereka bingung; jangan khawatir, lihatlah sedikit.
dir(pendulum.constants)
Ada sedikit lebih banyak daripada format RFC dan ISO di sana.Ketika kita mengatakan lokal, apa artinya? Maksud saya:
Mungkin sebagian besar dari Anda berarti di tempat lain.
Dan seterusnya. Singkat cerita: Pendulum berupaya melakukan untuk tanggal dan waktu apa permintaan dilakukan untuk HTTP. Ini patut dipertimbangkan, terutama untuk kemudahan penggunaan dan dokumentasi yang luas.
sumber
Waktu saat ini dari zona waktu
sumber
Coba modul panah dari http://crsmithdev.com/arrow/ :
Atau versi UTC:
Untuk mengubah outputnya, tambahkan .format ():
Untuk zona waktu tertentu:
Satu jam yang lalu:
Atau jika Anda menginginkan intinya.
sumber
arrow.now('Time/Zone')
mungkin gagal untuk beberapa zona waktu (arrow
penggunaandateutil
yang telah merusak utc -> konversi lokal yang digunakan di dalamarrow.now()
. Catatan:pytz
tidak memiliki masalah seperti itu . Juga, ada masalah terkait zona waktu lainnyaSaya ingin mendapatkan waktu dengan milidetik. Cara mudah untuk mendapatkannya:
Tetapi saya hanya menginginkan milidetik , bukan? Cara terpendek untuk mendapatkannya:
Tambah atau hapus nol dari perkalian terakhir untuk menyesuaikan jumlah titik desimal, atau cukup:
sumber
Anda dapat menggunakan fungsi ini untuk mendapatkan waktu (sayangnya tidak mengatakan AM atau PM):
Untuk mendapatkan jam, menit, detik, dan milidetik untuk digabungkan nanti, Anda bisa menggunakan fungsi-fungsi ini:
Jam:
Menit:
Kedua:
Mili detik:
sumber
Jika Anda hanya ingin cap waktu saat ini dalam ms (misalnya, untuk mengukur waktu eksekusi), Anda juga dapat menggunakan modul "timeit":
sumber
Berikut ini adalah apa yang saya gunakan untuk mendapatkan waktu tanpa harus memformat. Beberapa orang tidak suka metode split, tetapi ini berguna di sini:
Ini akan mencetak dalam format HH: MM: SS.
sumber
Karena belum ada yang menyebutkannya, dan ini adalah sesuatu yang saya temui baru-baru ini ... metode fromutc () pytz timezone yang dikombinasikan dengan utcnow datetime () adalah cara terbaik yang saya temukan untuk mendapatkan waktu saat ini yang berguna (dan tanggal) di zona waktu apa pun.
Jika yang Anda inginkan adalah waktu, Anda bisa mendapatkannya dengan itu
local_time.time()
.sumber
Pertanyaan ini untuk Python tetapi karena Django adalah salah satu kerangka kerja yang paling banyak digunakan untuk Python, penting untuk dicatat bahwa jika Anda menggunakan Django Anda selalu dapat menggunakan
timezone.now()
bukandatetime.datetime.now()
. Yang pertama adalah zona waktu 'sadar' sedangkan yang terakhir tidak.Lihat jawaban SO ini dan dokumen Django untuk detail dan alasan di belakang
timezone.now()
.sumber
Anda dapat melakukannya menggunakan ctime ():
keluaran:
Sat Sep 14 21:27:08 2019
Output ini berbeda karena stempel waktu yang dikembalikan
ctime()
tergantung pada lokasi geografis Anda.sumber