python时间与日期

time模块

三种时间表现形式
1.时间戳(秒数)
从1970年1月1日到现在经历的秒数
2.结构化时间
计算机识别的日期格式
3.格式化时间
主要是给人看的
Y m d H M S X
年 月 日 时 分 秒 时:分:秒
示例如下:

# 导入时间模块
	import time

# 时间戳
	time.time()
	print(time.time())  # 1666165810.4114015

# 时间字符串
	print(time.strftime('%Y-%m-%d'))  # 2022-10-19
	print(time.strftime('%Y/%m/%d'))  # 2022/10/19
	print(time.strftime('%Y/%m/%d  %H:%M:%S'))  # 2022/10/19  15:56:52
	print(time.strftime('%Y/%m/%d  %X'))  # 2022/10/19  15:56:52


# 时间元组:localtime将一个时间戳转换成当前时区的struct_time
	print(time.localtime())  
        """     
        打印结果为
        time.struct_time(tm_year=2023, tm_mon=9, tm_mday=20, tm_hour=21, tm_min=39, tm_sec=35, tm_wday=2, tm_yday=263, tm_isdst=0)
        """
        
        
 # 让程序原地阻塞指定的秒数
  	time.time(8)  
  
  
  注意:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

datetime模块

  1. 两种导入方式获取查看当地时间
"""  datetime"""
# 方式一:获取当前的datetime
    from datetime import datetime
    a = datetime.now()
    print('当前日期:',a)  # 当前日期: 2022-10-19 16:16:16.266254
    c = datetime.utcnow()
    print('世界时间:',c)  # 世界时间: 2022-10-19 08:20:13.713343


# 方式二:获取当前的datetime
    import datetime
    b = datetime.datetime.now()
    print('当前日期:',b)  # 当前日期: 2022-10-19 16:16:16.266254
    print(datetime.datetime.today())  # 2022-10-19 16:17:29.847966
    print(datetime.date.today())  # 2022-10-19
  1. 同时导入date和datetime
datetime  年月日  时分秒
date      年月日 
time      时分秒(后续会有此规律)

from datetime import date,datetime
print(date.today())  # 2022-10-19
print(datetime.today())  # 2022-10-19 16:27:29.955615
  1. 用指定日期时间创建datetime
import datetime
t = datetime.datetime(2008,8,8,8,8,8)  # 不能填零
print('指定日期:',t)  # 指定日期: 2008-08-08 08:08:08
  1. 将字符串转换成datetime类型
将下列的字符串转成为datetime类型
""" 
'2008/8/8'
'2016年9月13日星期六'
'2020年6月24日星期六6时6分6秒'
'10/19/2022'
'10/19/2022 8:42:12'
"""

import datetime
t1 = datetime.datetime.strptime('2008/8/8','%Y/%m/%d')
print(t1)   # 2008-08-08 00:00:00
t2 = datetime.datetime.strptime('2016年9月13日星期六','%Y年%m月%d日星期六')
print(t2)  # 2016-09-13 00:00:00
t3 = datetime.datetime.strptime('2020年6月24日星期六6时6分6秒','%Y年%m月%d日星期六%H时%M分%S秒')  # 数字必须写阿拉伯数字
print(t3)  # 2020-06-24 06:06:06
t4 = datetime.datetime.strptime('10/19/2022','%m/%d/%Y')
print(t4)  # 2022-10-19 00:00:00
t5 = datetime.datetime.strptime('10/19/2022 8:42:12','%m/%d/%Y  %H:%M:%S')
print(t5)  # 2022-10-19 08:42:12
  1. 将datetime类型转换为字符串
"""
2008年8月8日星期六,18时18分18秒
Saturday,September 30,2010
8/30/2021  18:30 AM
June 30,2021
"""

from datetime import datetime
t1 = datetime(2008,8,8,18,18,18)
print(t1.strftime('%Y年%m月%d日%A,%H时%M分%S秒'))  # 2008年08月08日Friday,18时18分18秒
print(t1.strftime('%A,%B %d,%Y'))  # Friday,August 08,2008
t2 = datetime(2021,8,30,8,30,34)
print(t2.strftime('%m/%d/%Y %I:%M:%S%p'))  # 08/30/2021 08:30:34AM
print(t2.strftime('%m/%d/%Y %H:%M:%S'))  # 08/30/2021 08:30:34
t3 = datetime(2021,6,30)
print(t3.strftime('%B %d %Y'))  # June 30 2021

  1. 代码是如何将时间进行天数或者秒数的相加
import datetime
t1 =  datetime.date.today()
print(t1)   # 2022-10-19
t2 = datetime.timedelta(days=6)
print(t1+t2)  # 2022-10-25


t3 = datetime.datetime.today()
print(t3)  # 2022-10-19 18:11:21.935837
t4 = datetime.timedelta(minutes=30)
print(t3+t4)  # 2022-10-19 18:42:21.593501

7.用系统时间输出以下字符串

"""
今天是2022年10月19日
今天是这周的第几天
今天是今年的第几天
今周是今年的第几周
今天是当月的第几天
"""

from datetime import datetime
# 获取当前系统时间
t = datetime.now()
print(t)  # 2022-10-19 17:29:27.145155
print(t.strftime('今天是%Y年%m月%d日'))  # 今天是2022年10月19日
print(t.strftime('今天是这周的第%w天'))  # 今天是这周的第3天
print(t.strftime('今天是今年的第%j天'))  # 今天是今年的第292天
print(t.strftime('今周是今年的第%W周'))  # 今周是今年的第42周
print(t.strftime('今天是当月的第%d天'))  # 今天是当月的第19天

8.日期时间的格式化字符串
%a 星期几的简写;如 星期三为Web
%A 星期几的全称;如 星期三为Wednesday
%b 月份的简写; 如4月份为Apr
%B 月份的全称; 如4月份为April
%c 标准的日期的时间串;(如: 04/07/10 10:43:39)
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值