首页 > 编程语言 >python日期和时间

python日期和时间

时间:2022-11-17 01:33:17浏览次数:44  
标签:struct python 日期 时间 time print path os strftime

一、日期和时间

时间戳

# 从1970年到现在经过的秒数
# 作用:用于时间间隔的计算
import time

print(time.time())  # 获得float型 1668571939.8918502

时间格式化符号

格式 含义 输出 备注
%a 本地简化星期名称 wed
%A 本地完整星期名称 Wednesday
%b 本地简化月份名称 Nov
%B 本地完整月份名称 November
%c 本地相应的日期和时间表示 Wed Nov 16 12:36:25 2022
%d 一个月的第几天(01-31) 16
%H 一天中的第几小时(24小时制) 12
%I 第几小时(12小时制) 12
%j 一年中的第几天 (001-366天) 320
%m 月份(01-12) 11
%M 分钟(01-59) 44
%p 本地AM或PM标识 PM 只有与%I配合才有意义
%S 秒 (01-61) 21 闰年秒占两秒,(4年一润,百年不润,400年一润)
%U 一年中第几周(00-53)以星期天为一周开始, 46
%w 一周中的第几天(0-6,0表示星期天)
%x 本地相应日期 11/16/22
%X 本地相应时间 13:03:30
%y 去掉世纪的年份(00-99) 22
%Y 完整的年份 2022
%Z 时区的名字(不存在时为空字符) 中国标准时间
%% %字符
import time

print(time.strftime('%a'))  # Wed
print(time.strftime("%A"))  # Wednesday
print(time.strftime('%b'))  # Nov
print(time.strftime("%B"))  # November
print(time.strftime("%c"))  # Wed Nov 16 12:36:25 2022
print(time.strftime('%d'))  # 16
print(time.strftime("%H"))  # 12
print(time.strftime("%I"))  # 12
print(time.strftime('%j'))  # 320
print(time.strftime("%m"))  # 11
print(time.strftime("%M"))  # 44
print(time.strftime("%p"))  # PM
print(time.strftime("%S"))  # 21
print(time.strftime("%U"))  # 46
print(time.strftime("%w"))  # 3
print(time.strftime("%W"))  # 46
print(time.strftime("%x"))  # 11/16/22
print(time.strftime("%X"))  # 13:03:30
print(time.strftime("%y"))  # 22
print(time.strftime('%Y'))  # 2022
print(time.strftime("%Z"))  # 中国标准时间

struct_time元组(时间结构化)

序号 属性 字段
0 tm_year 4位数年 如2008
1 tm_mon 1-12
2 tm_mday 1-31
3 tm_hour 小时 0-23
4 tm_min 分钟 0-59
5 tm_sec 0-61(60或61是润秒)
6 tm_wday 一周的第几日 0-6(0是周一)
7 tm_yday 一年的第几日 1-366
8 tm_isdst 夏令时 -1,0,1,-1是决定是否为夏令时的旗帜
import time
res = time.localtime() # 本地时区的struct_time
# res = time.gmtime() # UTC时区的struct_time
print(res) 
# time.struct_time(
# tm_year=2022, 
# tm_mon=11, 
# tm_mday=16, 
# tm_hour=13, 
# tm_min=17, 
# tm_sec=9, 
# tm_wday=2, 
# tm_yday=320, 
# tm_isdst=0)

时间格式相互转换
三种时间状的相互转换

  • mktime(struct_time):struct_time->timestamp、localtime(t)/mgtime(t):timestamp->struct_time
  • strftime(struct_time):struct_time->format_str、strptime(strftime):format_str->struct_time
  • time.ctime(t) ---> "%a %b %d %H:%M:%S %Y"
  • time.asctime(struct_time) --> "%a %b %d %H:%M:%S %Y"
# 时间戳转为结构化时间
# 时间戳转为结构化时间
import time

res = time.time()

struct_time =time.localtime(res)

# 结构化时间转为字符串时间
strftime_time = time.strftime('%Y-%m-%d %X',struct_time)

# 字符串时间转为结构化时间
strftime_time2 = time.strftime("%Y-%m-%d %X")
strftime_time2 = time.strftime("%Y-%m-%d %X")
struct_time2= time.strptime(strftime_time2,"%Y-%m-%d %X")


# 结构化时间转为时间戳
struct_time3 = time.localtime()
time3 = time.mktime(struct_time3)
print(time3)

# 其他asctime、ctime
print(time.asctime(time.localtime()))
print(time.ctime(time.time()))


二、time模块

函数名 作用 备注
time() 获取时间戳
localtime([secs]) 通过时间戳获取格式化时间
gmtime([secs]) 通过时间戳获取格式化时间(UTC时间)
mktime(struct_time) 通过结构化时间获取时间戳
asctime([struct_time]) 通过结构化时间获取"%a %b %d %H:%M:%S %Y"格式字符串
ctime([secs]) 通过时间戳获取"%a %b %d %H:%M:%S %Y"格式字符串
sleep(secs) 推迟运行
clock()(3.8废除) 返回当前CPU运行到当前的时间 perf_counter代替
strftime(format,[struct_time]) 将结构化元组时间转为格式化字符串时间
strptime(formatstr,format) 将格式化字符串时间转为结构化元组时间 format需与formatstr相对应

三、datatime模块

# 常用模块 datatime.datatime.now()、datetime.timedelta()、datetime.datetime.fromtimestamp(t)
# 三周以后
import datetime
print(datetime.datetime.now()+datetime.timedelta(weeks=3))
# 10天前
print(datetime.datetime.now()+datetime.timedelta(days=-10))

四、random模块

import random
print(random.random()) # 生成0-1之间的随机小数
print(random.randint(1,3)) # [1,3] 生成大于等于1小于等于3的整数
print(random.randrange(1,3)) # [1,3) 大于等于1小于3的整数
print(random.choice([1,2,3,4,5,6])) # 选取其中一个
print(random.choices([1,2,3,4,5,6],weights=[1,2,3,4,5,6],k=5)) # k选取次数,weights:相对权重,返回一个列表
print(random.sample([1,2,3,4,5],4)) # 返回任意4(可变)个元素组合
print(random.uniform(1,3)) # (1,3) 大于1小于3的任意小数
res = [1,2,3,4,5]
random.shuffle(res) # 改变原序列,洗牌,打乱顺序
print(res)

os模块

属性函数 作用
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('name1/name2') 可生成多层递归目录
os.removedirs('name1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(dirname) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(dirname) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(dirname) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove(filename) 删除一个文件
os.rename(oldname,newname) 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system('shell 命令') 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isdir(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isfile(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1,[path2]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getctime(path)
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
os.path.normcase(path) 在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠。
os.path.normpath(path) 规范化路径,如..和/
# 在python3.5之后,推出了一个新的模块pathlib
from pathlib import Path
res = Path(__file__).parent.parent
print(res)

sys模块

属性函数 作用
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(0) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint---(python2) 最大的Int值
sys.maxsize----(python3) 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称

shutill

标签:struct,python,日期,时间,time,print,path,os,strftime
From: https://www.cnblogs.com/hyf120/p/16898137.html

相关文章