Python的time和datetime模块详细介绍
time模块中时间表现的格式主要有三种:
a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
b、struct_time时间元组,共有九个元素组。
c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
time
常用的有time.time()
和time.sleep()
函数。
import timeprint(time.time())
1499305554.3239055
上面的浮点数称为UNIX纪元时间戳,是从1970年1月1日0点起到今天经过的秒数。可以看到后面有6位小数,使用round
函数,可以实现浮点数的四舍五入。如下
# 默认四舍五入到整数位,即不保留小数print(round(time.time()))# 可指定参数保留的小数位数print(round(time.time(), 2))
1499305554 1499305554.49
time.sleep(sec)
可以让当前休眠,参数填入秒(s)。
print('good') time.sleep(5.5)# 5.5秒后才打印这句print('yes')
good yes
其他一些函数的使用
# 返回UTC时间print(time.gmtime())# 返回本地时间,在中国就是UTC+8print(time.localtime())
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=6, tm_hour=1, tm_min=46, tm_sec=0, tm_wday=3, tm_yday=187, tm_isdst=0) time.struct_time(tm_year=2017, tm_mon=7, tm_mday=6, tm_hour=9, tm_min=46, tm_sec=0, tm_wday=3, tm_yday=187, tm_isdst=0)
可以发现这是一个元组类型,中国所在时区位UTC+8,可以发现除了tm_hour
不一样(它们相差了刚好+8),其余都一样。
下面的函数可以返回一个格式化的日期时间,看起来更加直观。
print(time.ctime())print(time.asctime())# 由于使用默认参数和上面的结果一样print(time.ctime(time.time()))print(time.asctime(time.localtime()))
Thu Jul 6 09:46:15 2017 Thu Jul 6 09:46:15 2017 Thu Jul 6 09:46:15 2017 Thu Jul 6 09:46:15 2017
ctime()
可以传入一个时间戳,没有指定参数时,默认使用当前时间戳作为参数。即time.time()
gtime()
可以传入一个struct_time,没有指定参数时,默认使用当前时间。即time.localtime()
struct_time转化为字符串及字符串转为struct_time
strptime的第一个参数是字符串形式的日期,第二个参数是自定义的日期转换格式。这两个参数的格式一定要对应。比如
time.strptime('2017/7/6', '%Y-%m-%d')
一个用了斜杠,一个用了短横线,就会报错。此函数返回一个struct_timestrftime的第一个参数是想要转化成的日期格式,第二个参数是一个struct_time,此函数将元组形式的struct_time转化成第一个参数指定的格式样子,返回的是转化后的日期字符串形式。
%Y-%m-%d
表示年月日,在datetime模块会详细介绍。
a = time.strptime('2017/7/6', '%Y/%m/%d') b = time.strftime('%Y-%m-%d', time.localtime())print(a)print(b)
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=6, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=187, tm_isdst=-1) 2017-07-06
测量程序的运行时间
使用时间戳可以方便地计时一段程序地运行时间
start_time = time.time()sum = 0for i in range(10000000):sum += 1end_time = time.time()print(end_time - start_time)
2.185124397277832
可以看到执行循环计算加法一千万次,那段程序花了2秒多。
也可以使用time.clock()
函数
start = time.clock()print(start) # 2.6773594453225194e-06time.sleep(2) end = time.clock()print(end - start) # 差值代表了睡眠2秒的时间。2.000246763295544time.sleep(3)print(time.clock()) # 5.00058991153112,返回的是从第一次调用到这次调用的时间间隔
4.4622657422041984e-07 2.0026006084745567 5.013243112269714
可以看到clock
第一次调用时比较奇怪,它返回的是进程运行的时间。之后再次调用都是与第一次调用clock
的值的差了。即从第一次调用开始算起,到当前调用clock
所经历的时间。
像上面一样,在想测试的一部分代码的上方设置start,结束的地方设置end,相减也能得到片段代码运行时间,而且比time.time()
还要准确。
datetime
datetime模块
用来管理日期和时间,其中有三个子模块。分别是time、date、datetime
,所以想要使用datetime可以使用下面的导入方式。
from datetime import datetime# 返回当前时间now = datetime.now()print(now.year, now.month, now.microsecond)# 可以自定义参数,返回格式化后的时间dt = datetime(2017, 10, 1, 23, 59, 59, 456123)print(dt)
2017 7 719609 2017-10-01 23:59:59.456123
datetime接受7个参数,分别对应年、月、日、时、分、秒、微秒。分别保存在datetime的year、month、day、hour、minute、second、microsecond
属性中。
由时间戳可以转换成datetime类型。如下,使用当前时间的时间戳。实际上等效于datetime.now()
。当然反过来由datetime得到时间戳也是可以的。
# 时间戳转datetimenow = datetime.fromtimestamp(time.time())print(now) sometime = datetime(2017, 7, 5, 23, 59, 59)# datetime转时间戳print(sometime.timestamp())
2017-07-06 09:46:07.903769 1499270399.0
这些datetime对象可以使用><=
符号来比较两个日期的先后。也可进行减运算,表示两个时刻的差值。比如
dt1 = datetime(2017, 5, 31) dt2 = datetime(2017, 4, 1)print(dt1 - dt2)print(dt1 > dt2)
60 days, 0:00:00 True
timedelta表示一段时间
注意它不是表示一个时刻,而是一段时间。
import datetime delta = datetime.timedelta(weeks=2, days=7, hours=1, seconds=59,microseconds=234353) delta1 = datetime.timedelta(days=5, hours=2)print(delta.seconds) # 返回属性hours和seconds的和print(delta.total_seconds()) # 只是以秒来表示这段时间print(delta > delta1)print(delta + delta1)
3659 1818059.234353 True 26 days, 3:00:59.234353
timedelta的接受的参数有weeks、days、hours、minutes、seconds、microseconds
,但是其属性却只有days、seconds、microseconds
。并且除了像datetime一样支持大小比较、减法运算外,还可以进行加法运算,表示两个时间段的差值。
将datetime转化为字符串形式及字符串转为datetime对象
time模块也有这两个函数(见上面的例子),使用上比较累类似。
strptime按照指定格式将字符串形式的日期转换成datetime对象并返回。
strftime将一个datetime对象(比如now)根据指定的格式转换成字符串并返回。
from datetime import datetime a = datetime.strptime('2017/7/6', '%Y/%m/%d') b = datetime.now().strftime('%Y-%m-%d')print(a)print(b)
2017-07-06 00:00:00 2017-07-06
关于日期时间的格式,看下表。
格式指令 | 含义 |
---|---|
%Y | 带世纪的四位年份,如2017 |
%y | 后两位年份,如17表示2017 |
%m | 月份,从01到12 |
%B | 完整的月份,如November |
%b | 月份的简写,如Nov |
%d | 一个月中的第几天,如从01到31(如果有的话) |
%j | 一年中的第几天 |
%w | 一周中的第几天 |
%A | 完整的周几,如Monday |
%a | 简写的周几,如Mon |
%H | 24小时制的小时00-23 |
%h | 12小时制的小时01-12 |
%M | 分,00-59 |
%S | 秒,00-59 |
%p | AM或者PM |
Atas ialah kandungan terperinci Python的time和datetime模块详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



MySQL mempunyai versi komuniti percuma dan versi perusahaan berbayar. Versi komuniti boleh digunakan dan diubahsuai secara percuma, tetapi sokongannya terhad dan sesuai untuk aplikasi dengan keperluan kestabilan yang rendah dan keupayaan teknikal yang kuat. Edisi Enterprise menyediakan sokongan komersil yang komprehensif untuk aplikasi yang memerlukan pangkalan data yang stabil, boleh dipercayai, berprestasi tinggi dan bersedia membayar sokongan. Faktor yang dipertimbangkan apabila memilih versi termasuk kritikal aplikasi, belanjawan, dan kemahiran teknikal. Tidak ada pilihan yang sempurna, hanya pilihan yang paling sesuai, dan anda perlu memilih dengan teliti mengikut keadaan tertentu.

Artikel ini memperkenalkan operasi pangkalan data MySQL. Pertama, anda perlu memasang klien MySQL, seperti MySqlworkbench atau Command Line Client. 1. Gunakan perintah MySQL-Uroot-P untuk menyambung ke pelayan dan log masuk dengan kata laluan akaun root; 2. Gunakan CreateTatabase untuk membuat pangkalan data, dan gunakan Pilih pangkalan data; 3. Gunakan createtable untuk membuat jadual, menentukan medan dan jenis data; 4. Gunakan InsertInto untuk memasukkan data, data pertanyaan, kemas kini data dengan kemas kini, dan padam data dengan padam. Hanya dengan menguasai langkah -langkah ini, belajar menangani masalah biasa dan mengoptimumkan prestasi pangkalan data anda boleh menggunakan MySQL dengan cekap.

Sebab utama kegagalan pemasangan MySQL adalah: 1. Isu kebenaran, anda perlu menjalankan sebagai pentadbir atau menggunakan perintah sudo; 2. Ketergantungan hilang, dan anda perlu memasang pakej pembangunan yang relevan; 3. Konflik pelabuhan, anda perlu menutup program yang menduduki port 3306 atau mengubah suai fail konfigurasi; 4. Pakej pemasangan adalah korup, anda perlu memuat turun dan mengesahkan integriti; 5. Pembolehubah persekitaran dikonfigurasikan dengan salah, dan pembolehubah persekitaran mesti dikonfigurasi dengan betul mengikut sistem operasi. Selesaikan masalah ini dan periksa dengan teliti setiap langkah untuk berjaya memasang MySQL.

Fail muat turun mysql adalah korup, apa yang perlu saya lakukan? Malangnya, jika anda memuat turun MySQL, anda boleh menghadapi rasuah fail. Ia benar -benar tidak mudah hari ini! Artikel ini akan bercakap tentang cara menyelesaikan masalah ini supaya semua orang dapat mengelakkan lencongan. Selepas membacanya, anda bukan sahaja boleh membaiki pakej pemasangan MySQL yang rosak, tetapi juga mempunyai pemahaman yang lebih mendalam tentang proses muat turun dan pemasangan untuk mengelakkan terjebak pada masa akan datang. Mari kita bercakap tentang mengapa memuat turun fail rosak. Terdapat banyak sebab untuk ini. Masalah rangkaian adalah pelakunya. Gangguan dalam proses muat turun dan ketidakstabilan dalam rangkaian boleh menyebabkan rasuah fail. Terdapat juga masalah dengan sumber muat turun itu sendiri. Fail pelayan itu sendiri rosak, dan sudah tentu ia juga dipecahkan jika anda memuat turunnya. Di samping itu, pengimbasan "ghairah" yang berlebihan beberapa perisian antivirus juga boleh menyebabkan rasuah fail. Masalah Diagnostik: Tentukan sama ada fail itu benar -benar korup

MySQL enggan memulakan? Jangan panik, mari kita periksa! Ramai kawan mendapati bahawa perkhidmatan itu tidak dapat dimulakan selepas memasang MySQL, dan mereka sangat cemas! Jangan risau, artikel ini akan membawa anda untuk menangani dengan tenang dan mengetahui dalang di belakangnya! Selepas membacanya, anda bukan sahaja dapat menyelesaikan masalah ini, tetapi juga meningkatkan pemahaman anda tentang perkhidmatan MySQL dan idea anda untuk masalah penyelesaian masalah, dan menjadi pentadbir pangkalan data yang lebih kuat! Perkhidmatan MySQL gagal bermula, dan terdapat banyak sebab, mulai dari kesilapan konfigurasi mudah kepada masalah sistem yang kompleks. Mari kita mulakan dengan aspek yang paling biasa. Pengetahuan asas: Penerangan ringkas mengenai proses permulaan perkhidmatan MySQL Startup. Ringkasnya, sistem operasi memuatkan fail yang berkaitan dengan MySQL dan kemudian memulakan daemon MySQL. Ini melibatkan konfigurasi

MySQL boleh berjalan tanpa sambungan rangkaian untuk penyimpanan dan pengurusan data asas. Walau bagaimanapun, sambungan rangkaian diperlukan untuk interaksi dengan sistem lain, akses jauh, atau menggunakan ciri -ciri canggih seperti replikasi dan clustering. Di samping itu, langkah -langkah keselamatan (seperti firewall), pengoptimuman prestasi (pilih sambungan rangkaian yang betul), dan sandaran data adalah penting untuk menyambung ke Internet.

Pengoptimuman prestasi MySQL perlu bermula dari tiga aspek: konfigurasi pemasangan, pengindeksan dan pengoptimuman pertanyaan, pemantauan dan penalaan. 1. Selepas pemasangan, anda perlu menyesuaikan fail my.cnf mengikut konfigurasi pelayan, seperti parameter innodb_buffer_pool_size, dan tutup query_cache_size; 2. Buat indeks yang sesuai untuk mengelakkan indeks yang berlebihan, dan mengoptimumkan pernyataan pertanyaan, seperti menggunakan perintah menjelaskan untuk menganalisis pelan pelaksanaan; 3. Gunakan alat pemantauan MySQL sendiri (ShowProcessList, ShowStatus) untuk memantau kesihatan pangkalan data, dan kerap membuat semula dan mengatur pangkalan data. Hanya dengan terus mengoptimumkan langkah -langkah ini, prestasi pangkalan data MySQL diperbaiki.

Panduan Pengoptimuman Prestasi Pangkalan Data MySQL Dalam aplikasi yang berintensifkan sumber, pangkalan data MySQL memainkan peranan penting dan bertanggungjawab untuk menguruskan urus niaga besar-besaran. Walau bagaimanapun, apabila skala aplikasi berkembang, kemunculan prestasi pangkalan data sering menjadi kekangan. Artikel ini akan meneroka satu siri strategi pengoptimuman prestasi MySQL yang berkesan untuk memastikan aplikasi anda tetap cekap dan responsif di bawah beban tinggi. Kami akan menggabungkan kes-kes sebenar untuk menerangkan teknologi utama yang mendalam seperti pengindeksan, pengoptimuman pertanyaan, reka bentuk pangkalan data dan caching. 1. Reka bentuk seni bina pangkalan data dan seni bina pangkalan data yang dioptimumkan adalah asas pengoptimuman prestasi MySQL. Berikut adalah beberapa prinsip teras: Memilih jenis data yang betul dan memilih jenis data terkecil yang memenuhi keperluan bukan sahaja dapat menjimatkan ruang penyimpanan, tetapi juga meningkatkan kelajuan pemprosesan data.
