Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah perbezaan dan penggunaan antara masa dan datetime dalam python

Apakah perbezaan dan penggunaan antara masa dan datetime dalam python

WBOY
Lepaskan: 2023-05-02 11:01:06
ke hadapan
1252 orang telah melayarinya

1. Dua cara untuk mewakili masa dalam Python:

  • Cop masa: diimbangi dalam saat berbanding 1970.1.1 00:00:00, satu-satunya

  • Masa tuple struct_time: 9 elemen keseluruhannya> tahun 1-12> bulan 1-12> tm_sec: saat 0-59> tm_wday: minggu 0-6 (0 bermaksud Ahad)> tm_day: hari dalam tahun 1-366> 🎜>

    2. Masa
  •  1. time.time() #当前时间戳, 没参数,唯一值
     2. time.sleep(secs) #暂停几秒
     3. time.gmtime(secs)  #无参得到当前格林尼治时间,有时间戳参数就转为格林尼治结构时间
     4. time.localtime(secs)  #无参得到local结构化时间, 有时间戳参数就转为local结构化时间
               print(time.localtime())  # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=20, tm_hour=11, tm_min=20, tm_sec=44, tm_wday=3, tm_yday=293, tm_isdst=0)
               print(time.localtime(13912345678))  # time.struct_time(tm_year=2410, tm_mon=11, tm_mday=12, tm_hour=20, tm_min=27, tm_sec=58, tm_wday=4, tm_yday=316, tm_isdst=0)
     5. time.strftime(format, t) #将结构化时间转化为自定义的格式化时间 
               print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))  #北京时间
               print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()+60*60)))  #东京时间
     6. time.strptime(string, format) # 将自定义时间(字符串)转化为结构时间
               print(time.strptime("2023-1-11 1:2:3", "%Y-%m-%d %H:%M:%S")) # 将日常格式化时间转为结构化时间
               print(time.strptime("2023-1-11", "%Y-%m-%d")) # 将日常格式化时间转为结构化时间
     7. time.ctime(secs)  # 将一个时间戳转变为一个结构化时间
               print(time.ctime(123))  # Thu Jan  1 08:02:03 1970
               print(time.ctime(time.time() + 60 * 60))  # Thu Oct 20 11:28:32 2023
     8. time.mktime(t) # 将所给结构化时间转化为时间戳
               print(time.mktime(time.localtime(time.time())))  # 1666233100.0
               print(time.time())  # 1666233100.5075898  # 两行的效果是一样的
               # 求一个指定时间的时间戳
               print(time.mktime(time.strptime('2023-2-3', '%Y-%m-%d'))) # 1580659200.0
    Salin selepas log masuk
3. DateTime

DateTime jauh lebih maju daripada masa. termasuk kategori berikut:

delta masa: digunakan terutamanya untuk mengira jangka masa
  • masa: hanya tertumpu pada masa
  • tarikh: hanya fokus pada tarikh
  • masa tarikh: kedua-dua masa dan tarikh
  • dalam Dalam penggunaan sebenar, yang paling biasa digunakan yang adalah datetime.datetime dan datetime.timedelta Penggunaan sebenar dua datetime.date dan datetime.time tidak jauh berbeza dengan datetime.datetime.
1.datetime.datetime

datetime.datetime terutamanya akan mempunyai atribut berikut dan kaedah biasa selepas instantiation:

time_now = datatime.datetime.now()  #实例化

datetime.year
datetime.month
datetime.day
datetime.hour
datetime.minute
datetime.second
datetime.microsecond
datetime.tzinfo():时区
datetime.date():返回date对象
datetime.time():返回time对象
datetime.replace(name=value)
datetime.timetuple():返回time.struct_time 对象
datetime.strftime(format):按照format进行格式化输出
#除了实例本身具有的方法,类本身也提供了很多好用的方法:

datetime.strptime(date_string,format): 给定时间格式解析字符串
datetime.now([tz]):当前时间默认 localtime
datetime.today():当前时间
Salin selepas log masuk

2.datetime.timedelta

date.timedelta(3), maju 3 hari

date.timedelta(-3), balik 3 hari

date.timedelta(jam = 3), maju 3 jam

date.timedelta(minit = 3) , maju 3 minit

import time
import datetime

dt = datetime.datetime.now()

print(dt.timestamp())
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.tzinfo)
print(dt.time())
print(dt.date())
print(dt.strftime("%Y-%m-%d %H:%M:%S"))  # 2023-1-31 13:42:16
print(datetime.datetime.strptime('2023-1-20 1:1:1', "%Y-%m-%d %H:%M:%S"))

delta = datetime.timedelta(11)

print(dt + delta)
print((dt + delta).strftime("%Y-%m-%d %H:%M:%S"))
print((dt - delta).strftime("%Y-%m-%d %H:%M:%S"))

print('....')
print(datetime.datetime.now()) #返回 2023-1-20 13:40:29.151057
print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式 2023-1-20
print(datetime.datetime.now())
print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分

print(datetime.date.fromtimestamp(time.time()))  # 2023-1-20
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah perbezaan dan penggunaan antara masa dan datetime dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan