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

Apakah perbezaan dan penggunaan antara masa dan datetime dalam python

WBOY
WBOYke hadapan
2023-05-02 11:01:061228semak imbas

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
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():当前时间

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

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam