Python时间time、datetime、date之间转换,获取今天、昨天、上周、上月、去年的时间

发布时间:2024-12-26 21:27

地球绕太阳公转一周的时间被称为一年,约365.25天。 #生活知识# #常识#

一、time、datetime、date之间转换

    概念: 首先需要理解三个名词: 时间戳(int), 时间数组, 日期格式(str)

    utc time : 国际时间(伦敦时间)

    localtime: 本地时间时间(如北京时间 = 伦敦时间 + 8小时)

    国际时间获取: time.gmtime()     datetime.datetime.utcnow()

    本地时间获取: time.localtime()    datetime.datetime.now()

import time

s = time.time()

print('时间戳:', s)

>> 1540975769.3088

time_array = time.localtime()             

time_array2 = time.gmtime()             

print('本地时间数组:', time_array)

print('utc时间数组:', time_array2)

>> 本地时间数组: time.struct_time(tm_year=2018, tm_mon=10, tm_mday=31, tm_hour=16, tm_min=50, tm_sec=53, tm_wday=2, tm_yday=304, tm_isdst=0)

dt = time.strftime('%Y-%m-%d %H:%M:%S', time_array)

print('日期格式(str):', dt)

>> 日期格式(str): 2018-10-31 16:50:53

1、时间戳转日期(秒 -> 数组 -> 日期):  time.strftime()  类似 datetime.datetime.strftime()
        s = 1540878671       # 单位: s; 也就是只有10位数,超过将无法转化
        array = time.gmtime(s)
        dt = time.strftime('%Y-%m-%d %H:%M:%S', array)
        print("时间戳转化的日期:", dt)
     >> 时间戳转化的日期:2018-10-30 08:51:11

2、日期转时间戳(日期 -> 数组 -> 秒):  time.strptime()  类似 datetime.datetime.strptime()
       dt = '2018-10-30 08:51:11'
       array = time.strptime(dt, '%Y-%m-%d %H:%M:%S')
       s = time.mktime(array)
       print("日期转化的时间戳:", s)
     >>日期转化的时间戳:1540860671.0

     
二、分别获取今天、昨天、上周、上月、去年的此刻时间

      首先安装: pip  install python-dateutil

     相差天数函数: datetime.timedelta(days=1)  

    相差月份函数:relativedelta(months=1)

from dateutil.relativedelta import relativedelta

import datetime

today = datetime.date.today()                           

yesterday = today - datetime.timedelta(days=1)         

Lastweek = today - datetime.timedelta(days=7)               

Nearly_month = today - datetime.timedelta(days=30)             

Last_month = datetime.date.today() - relativedelta(months=1)   

Last_year = datetime.date.today() - relativedelta(months=12) 

    上述获取到的结果为<class 'datetime date'>,

     转化为日期格式(str):  datetime.date.strftime(Last_year, '%Y-%m-%d')

Demo:

   输入年月日,得知其为当年的第几天?

 今天日期减去年12月31日的日期即可

import datetime

y = int(input('请输入4位数字的年份:'))

m = int(input('请输入月份:'))

d = int(input('请输入是哪一天:'))

targetDay = datetime.date(y, m, d)

dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31)

print('%s是%s年的第%s天。'% (targetDay, y, dayCount.days))

---------------------------------------------更新 2019-9-27 14:56:18--------------------------------------------------

1.获取时区,获取指定时区时间

import pytz

import datetime

print(pytz.country_timezones('cn'))

print(pytz.country_timezones('us'))

tz = pytz.timezone('Asia/Shanghai')

user_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")

print(user_time)

'

2.带T时间字符串转换

from datetime import datetime

s = '2020-02-21T03:56:03.755Z'

ret1 = datetime.strptime(s, "%Y-%m-%dT%H:%M:%S.%fZ")

ret2 = datetime.date(ret1)

print(ret1)

print(ret2)

>> 2020-02-21 03:56:03.755000

>> 2020-02-21

3.输入日期区间列出所有区间内所有日期

def date_range(self, beginDate, endDate):

import datetime

dates = []

dt = datetime.datetime.strptime(beginDate, "%Y-%m-%d")

date = beginDate[:]

while date <= endDate:

dates.append(date)

dt = dt + datetime.timedelta(1)

date = dt.strftime("%Y-%m-%d")

return dates

ret = date_range("2020-01-10", "2020-01-20")

4.字符串时间 加减时间天数

import datetime

enddate = '2020-04-08'

dt = datetime.datetime.strptime(enddate, "%Y-%m-%d") + datetime.timedelta(1)

print('dt:', dt)

print('dt-day:', dt.date())

>> dt: 2020-04-09 00: 00:00

>> dt-day: 2020-04-09

网址:Python时间time、datetime、date之间转换,获取今天、昨天、上周、上月、去年的时间 https://www.yuejiaxmz.com/news/view/577392

上一篇: 倒数日
下一篇: photoshop 7

相关内容

python的常用日期处理datetime模块
利用Python进行数据分析笔记-时间序列(转换、索引、偏移)
PHP日期与时间应用与实践
layui 、 js 对时间范围 年月日 时分秒 做区间选择
java 时间格式化 注解
Python实现数据转移:SQL server ==> SQL server
SpringMVC Get请求如何获取Date类型的参数—— @DateTimeFormat
解决dateutil.parser.
python时间运算
2023五月天线上跨年演唱会(直播时间+平台+门票)

随便看看