>  기사  >  백엔드 개발  >  파이썬에서 시간과 날짜/시간의 차이점과 사용법은 무엇입니까

파이썬에서 시간과 날짜/시간의 차이점과 사용법은 무엇입니까

WBOY
WBOY앞으로
2023-05-02 11:01:061180검색

1. Python에서 시간을 표현하는 두 가지 방법:

  • 타임스탬프: 1970.1.1 00:00:00을 기준으로 한 초 단위 오프셋, 고유

  • time tuple struct_time: 총 요소 9개> 12> tm_mon: 월 1~12> tm_mday: 일 0~23> tm_min: 분 0~59> tm_wday: 주 0~6 tm_day: 일 1-366> tm_isdst: 일광 절약 시간인지 여부에 관계없이 기본값은 -1

time

 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 비율이 훨씬 더 앞설 수 있습니다. datetime은 시간을 기반으로 캡슐화되고 주로 다음 범주를 포함하는 보다 실용적인 기능을 제공한다는 것을 이해했습니다.

  • timedelta: 주로 시간 범위를 계산하는 데 사용됩니다. 날짜에 집중하세요

  • datetime: 시간과 날짜 모두

  • 실제 사용에서는 datetime.datetime과 datetime.timedelta가 더 일반적으로 사용되며, 나머지 두 가지는 datetime.date datetime.time의 실제 사용은 그렇지 않습니다. datetime.datetime과 많이 다릅니다.

  • 1.datetime.datetime
  • datetime.datetime은 인스턴스화 후 주로 다음과 같은 속성과 일반적인 메서드를 갖습니다:

    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), 3일 앞으로 이동

date.timedelta( - 3) 3일 전으로

date.timedelta(시 = 3), 3시간 앞으로

date.timedelta(분 = 3), 3분 앞으로

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

위 내용은 파이썬에서 시간과 날짜/시간의 차이점과 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제