【python中处理日期和时间二】扩展内容datetime模块-pytz模块-dateutil模块

扩展内容:日期和时间

datetime模块;pytz模块;dateutil模块

一、 datetime模块

查看datetime模块函数:

python 复制代码
>>> import datetime
>>> dir(datetime)
['MAXYEAR', 'MINYEAR', 'UTC', '__all__', '__builtins__', '__cached__', '__doc__',
 '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime',
  'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
>>>

1、基础应用示例:

python 复制代码
import datetime  #引入datetime模块
import time      #引入datetime模块

ticks_data = time.time() #当前时间戳

print("------创建指定时间-------")
tim = datetime.time (18,30,00)
print(tim)
print(tim.isoformat())  #返回型如"HH:MM:SS"格式的字符串表示
print(tim.strftime("%H-%M-%S")) #自定义格式
print(datetime.datetime(2024,3,15,18,00,00))


print("------获得当前时间-------")
print("1-now()函数:",datetime.datetime.now())
print("2-today()函数:",datetime.datetime.today())

print("------时间格式化-------")
tim1=datetime.datetime.now()
print("当前日期和时间:",tim1.strftime("%Y-%m-%d %H:%M:%S"))
print("当前日期:",tim1.strftime("%Y-%m-%d "))
print("时间:",tim1.strftime("%H:%M:%S"))
print("年",tim1.year,"月",tim1.month,"日",tim1.day,"时",tim1.hour,"分",tim1.minute,"秒",tim1.second)

运行结果如下:

2、计算从指定年月日,或到特定日期多少天

python 复制代码
import datetime
def birthday(year,month,day):
    bir = datetime.datetime(year,month,day,0,0,0)
    now = datetime.datetime.now()
    day = (now - bir).days

    return day

print(birthday(1990,9,26))

运行结果:

3、给定任意日期,输出该日期对应的 上周/本周/下周 周一的日期

python 复制代码
import datetime

def last_monday(date_str):
    ji = datetime.datetime.strptime(date_str, "%Y-%m-%d").strftime("%w")
    ji = eval(ji)
    date_str = datetime.datetime.strptime(date_str, "%Y-%m-%d")
    if ji == 0:
        delta = datetime.timedelta(days=6)
        last = date_str - delta
    else:
        delta = datetime.timedelta(days=ji+6)
        last = date_str - delta
    last = last.strftime("%Y-%m-%d")
    return last

def this_monday(date_str):
    ji = datetime.datetime.strptime(date_str, "%Y-%m-%d").strftime("%w")
    ji = eval(ji)
    date_str = datetime.datetime.strptime(date_str, "%Y-%m-%d")
    if ji == 0:
        delta = datetime.timedelta(days=1)
        this = date_str + delta
    else:
        delta = datetime.timedelta(days=ji-1)
        this = date_str - delta
    this = this.strftime("%Y-%m-%d")
    return this


def next_monday(date_str):
    ji = datetime.datetime.strptime(date_str, "%Y-%m-%d").strftime("%w")
    ji = eval(ji)
    date_str = datetime.datetime.strptime(date_str, "%Y-%m-%d")
    if ji == 0:
        delta = datetime.timedelta(days=8)
        ne = date_str + delta
    else:
        delta = datetime.timedelta(days=8-ji)
        ne = date_str + delta
    ne = ne.strftime("%Y-%m-%d")
    return ne

n = input("请输入日期:")
print('输入日期:', n)
print('上周一:', last_monday(n))
print('本周一:', this_monday(n))
print('下周一:', next_monday(n))

运行结果:

二、pytz模块

由于pytz模块属于第三方库,所以在使用前需要使用pip进行下载其依赖库。

pip install pytz。

添加pytz库,方式如下:

相关推荐
&小刘要学习&4 分钟前
anaconda不显示jupyter了?
python·jupyter
jerry-894 分钟前
jupyterhub_config配置文件内容
python
庸俗今天不摸鱼12 分钟前
Canvas进阶-4、边界检测(流光,鼠标拖尾)
开发语言·前端·javascript·计算机外设
菠菠萝宝13 分钟前
【Java八股文】10-数据结构与算法面试篇
java·开发语言·面试·红黑树·跳表·排序·lru
奔跑吧邓邓子15 分钟前
【Python爬虫(36)】深挖多进程爬虫性能优化:从通信到负载均衡
开发语言·爬虫·python·性能优化·负载均衡·多进程
不会Hello World的小苗19 分钟前
Java——链表(LinkedList)
java·开发语言·链表
lsx20240632 分钟前
Perl 面向对象编程指南
开发语言
学长学姐我该怎么办40 分钟前
年前集训总结python
python
量化投资技术1 小时前
【量化科普】Sharpe Ratio,夏普比率
python·量化交易·量化·量化投资·qmt·miniqmt
yanglamei19621 小时前
基于Python+Django+Vue的旅游景区推荐系统系统设计与实现源代码+数据库+使用说明
vue.js·python·django