百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

「Python标准库」datetime 模块讲解与示例

bigegpt 2024-09-10 11:24 4 浏览

Python中的datetime模块讲解与示例

Python 中的日期和时间操作是使用名为datetime的模块完成的。它的类具有处理日期、时间、时区和时差的功能。它是一个内置模块,因此不必专门安装。

datetime 模块不仅使我们能够进行日期和时间计算,而且还有助于通过高效的属性提取来格式化输出。

A.datetime中的常量

datetime模块包含两个常量:

MINYEAR:它是日期或日期时间对象的最小有效年份数。它的值为 1。

import datetime

print(datetime.MINYEAR)
# output: 1

MAXYEAR:它是日期或日期时间对象的最大有效年份数。它的值为 9999。

import datetime

print(datetime.MAXYEAR)
# output: 9999

B.datetime中的类

此模块中有六个可用的类允许操作日期和时间:

1、date类

此类的对象表示日历中的日期(格式:年、月、日)。用于该格式的日历当前是公历。此类的构造函数需要所有三个参数:year、month和day。

语法:

 class datetime.date(year, month, day)

参数应参考如下设置:

MINYEAR <= year <= MAXYEAR 
1 <= month <= 12 
1 <= day <= 给定月份和年份中的天数

如果参数的值超出上述范围,则会指出ValueError,如果类型不是整数,则会引发 TypeError。

例子:

MINYEAR <= year <= MAXYEAR 
1 <= month <= 12 
1 <= day <= 给定月份和年份中的天数

简单的示例:

from datetime import date 
 
date0 = date ( 2021 ,  6 ,  6 )  
print ( "简单的示例: " , date0 )
# output:简单的示例:  2021-06-06

date类具有以下类方法和属性:

from datetime import date
import time

## today() 方法
datetoday= date.today()
print("今天是:  ", datetoday) 
# 今天是:   2021-06-07

## fromtimestamp() 方法
date1 = date.fromtimestamp(time.time())
print("给定时间戳的日期是:  ", date1)
# 给定时间戳的日期是:   2021-06-07

## fromordinal() 方法
ordinal0= date.fromordinal(1000)
print("从零开始的第1000天是: ", ordinal0)
# 从零开始的第1000天是:  0003-09-27

## fromisoformat() 方法
dateiso= date.fromisoformat('2019-12-04')
print("文本中的日期是: ", dateiso)
# 文本中的日期是:  2019-12-04

## fromisocalendar(year,week,day) 方法
ii = date.fromisocalendar(2010,4,3)
print("由年、周和日指定的日期是: ", ii)
# 由年、周和日指定的日期是:  2010-01-27

date类还具有实例方法 实例方法是使用类的实例的方法,而类方法只能与类名一起使用。下面给出了date类的实例方法:

from datetime import date

## replace() 实例方法
x = date(2019, 9, 25)
x.replace(year=2010, day=15)
print("替换后的日期是:", x)

## timetuple 实例方法
t = x.timetuple()
## 返回该日期的信息信息
print ("返回的日期信息是:", t)

## toordinal() 实例方法
d = x.toordinal()
print("给定日期的公历序数是:", d)

## weekday() 实例方法
print("给定日期是星期几?",x, "是:", x.weekday())

## isoweekday() 实例方法
print("给定日期是星期几?",x, "在ISO日期是:", x.isoweekday())

## isocalendar() 实例方法
print("在公历日期中,",x,"是:",x.isocalendar())


## 下面的函数转换日期字符串

## isoformat 实例方法
s=x.isoformat()
print("给定日期转化成 ISO 8601 格式是:", s)

## str 实例方法
print("给定日期转化为文本是:", str(x))

## ctime() 实例方法
print("给定日期的完整字符串表示,",x,"是:", x.ctime())

## strftime() 实例方法
xyear =  x.strftime("%Y")
xdate_time = x.strftime("%Y/%m/%d, %H:%M:%S")
print("给定日期使用 format 格式化为文本")
print(xyear)
print(xdate_time)

## format() 实例方法
st=format(x)
print("给定日期转为文本是:",st)

## output:
## 替换后的日期是: 2019-09-25
## 返回的日期信息是: time.struct_time(tm_year=2019, tm_mon=9, tm_mday=25, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=268, tm_isdst=-1)
## 给定日期的公历序数是: 737327
## 给定日期是星期几? 2019-09-25 是: 2
## 给定日期是星期几? 2019-09-25 在ISO日期是: 3
## 在公历日期中, 2019-09-25 是: (2019, 39, 3)
## 给定日期转化成 ISO 8601 格式是: 2019-09-25
## 给定日期转化为文本是: 2019-09-25
## 给定日期的完整字符串表示, 2019-09-25 是: Wed Sep 25 00:00:00 2019
## 给定日期使用 format 格式化为文本
## 2019
## 2019/09/25, 00:00:00
## 给定日期转为文本是: 2019-09-25

2. Time 类

时间类的对象表示本地时间,可以通过tzinfo对象进行调整

语法:

class datetime.time(hour, minute, second, microsecond, tzinfo, *, fold)

示例:

from datetime import time
 
time0 = time(13, 24,34) 
print("给定时间示例:", time0)

今天和大家初步学习了Python标准库中datetime模块,大家都学会了吗?

相关推荐

Go语言泛型-泛型约束与实践(go1.7泛型)

来源:械说在Go语言中,Go泛型-泛型约束与实践部分主要探讨如何定义和使用泛型约束(Constraints),以及如何在实际开发中利用泛型进行更灵活的编程。以下是详细内容:一、什么是泛型约束?**泛型...

golang总结(golang实战教程)

基础部分Go语言有哪些优势?1简单易学:语法简洁,减少了代码的冗余。高效并发:内置强大的goroutine和channel,使并发编程更加高效且易于管理。内存管理:拥有自动垃圾回收机制,减少内...

Go 官宣:新版 Protobuf API(go pro版本)

原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...

Golang开发的一些注意事项(一)(golang入门项目)

1.channel关闭后读的问题当channel关闭之后再去读取它,虽然不会引发panic,但会直接得到零值,而且ok的值为false。packagemainimport"...

golang 托盘菜单应用及打开系统默认浏览器

之前看到一个应用,用go语言编写,说是某某程序的windows图形化客户端,体验一下发现只是一个托盘,然后托盘菜单的控制面板功能直接打开本地浏览器访问程序启动的webserver网页完成gui相关功...

golang标准库每日一库之 io/ioutil

一、核心函数概览函数作用描述替代方案(Go1.16+)ioutil.ReadFile(filename)一次性读取整个文件内容(返回[]byte)os.ReadFileioutil.WriteFi...

文件类型更改器——GoLang 中的 CLI 工具

我是如何为一项琐碎的工作任务创建一个简单的工具的,你也可以上周我开始玩GoLang,它是一种由Google制作的类C编译语言,非常轻量和快速,事实上它经常在Techempower的基准测...

Go (Golang) 中的 Channels 简介(golang channel长度和容量)

这篇文章重点介绍Channels(通道)在Go中的工作方式,以及如何在代码中使用它们。在Go中,Channels是一种编程结构,它允许我们在代码的不同部分之间移动数据,通常来自不同的goro...

Golang引入泛型:Go将Interface「」替换为“Any”

现在Go将拥有泛型:Go将Interface{}替换为“Any”,这是一个类型别名:typeany=interface{}这会引入了泛型作好准备,实际上,带有泛型的Go1.18Beta...

一文带你看懂Golang最新特性(golang2.0特性)

作者:腾讯PCG代码委员会经过十余年的迭代,Go语言逐渐成为云计算时代主流的编程语言。下到云计算基础设施,上到微服务,越来越多的流行产品使用Go语言编写。可见其影响力已经非常强大。一、Go语言发展历史...

Go 每日一库之 java 转 go 遇到 Apollo?让 agollo 来平滑迁移

以下文章来源于GoOfficialBlog,作者GoOfficialBlogIntroductionagollo是Apollo的Golang客户端Apollo(阿波罗)是携程框架部门研...

Golang使用grpc详解(golang gcc)

gRPC是Google开源的一种高性能、跨语言的远程过程调用(RPC)框架,它使用ProtocolBuffers作为序列化工具,支持多种编程语言,如C++,Java,Python,Go等。gR...

Etcd服务注册与发现封装实现--golang

服务注册register.gopackageregisterimport("fmt""time"etcd3"github.com/cor...

Golang:将日志以Json格式输出到Kafka

在上一篇文章中我实现了一个支持Debug、Info、Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手。有兴趣的可以通过这个链接前往:https://github.com/...

如何从 PHP 过渡到 Golang?(php转golang)

我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗旨,从零开始,开始学习。因为我司没有专门的Golang大牛,所以我也只能一步步自己去...