1. 时间模块time

在python中,时间通常有下面几种表示形式:
 1.时间戳
 2.字符串时间
 3.元组类型的时间

在使用方法前,导入time模块:

import time

1. 时间戳:时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
time.time()
 返回值:从1970年1月1日00:00:00开始到当前的秒数
 返回值类型:float类型

print(time.time())

运行结果如下:

datetime不显示 毫秒 python_字符串


2. 字符串时间:即我们最常见到,也最熟悉的时间格式

time.asctime():把一个表示元组时间或者struct_time表示为这种固定形式:‘Sun Jun 20 23:21:05 1993’,如果没有参数,将会将time.localtime()作为参数传入。

 返回值:固定形式的时间

 返回值类型:字符串类型

print(time.asctime())
print(type(time.asctime()))

输出结果如下:

datetime不显示 毫秒 python_元组_02


time.ctime():把一个时间戳转化为time.asctime()的形式,如果参数未给或者为None的时候,将会默认time.time()为参数。

print(time.ctime())
print(type(time.ctime()))

输出结果如下:

datetime不显示 毫秒 python_元组_03


3. 元组时间(struct_time):

struct_time元组共有9个元素,下面列出这种方式元组中的几个元素:

索引(Index)

属性(Attribute)

值(Values)

0

tm_year(年)

年份:比如2019

1

tm_mon(月)

1 - 12月

2

tm_mday(日)

1 - 31天

3

tm_hour(时)

0-24时

4

tm_min(分)

0 - 59

5

tm_sec(秒)

0 - 60

6

tm_wday(weekday)

0 - 6(0表示周日)

7

tm_yday(一年中的第几天)

1 - 366

8

tm_isdst(是否是夏令时)

默认为-1

time.localtime():将一个时间戳转换为当前时区的元组时间,参数未提供,则以当前时间为准。
 返回值:元组时间
 返回值类型:time.struct_time

info = time.localtime()
print(info,type(info))

输出结果如下:

datetime不显示 毫秒 python_格式输出_04

datetime不显示 毫秒 python_格式输出_05


可以在元组时间中提取具体想要的值:

info = time.localtime()
print(info.tm_year)
print(info.tm_mon)

输出结果如下:

datetime不显示 毫秒 python_格式输出_06

2. 常用时间的转换

1. 把元组时间转换为时间戳
time.mktime()
 返回值:时间戳
 返回值类型:float型

tuple_time = time.localtime()
time_now = time.mktime(tuple_time)
print(time_now, type(time_now))

输出结果:

datetime不显示 毫秒 python_元组_07

2. 把元组时间转化为字符串时间

time.strftime(format, p_tuple=None):把元组时间转化为格式化的字符串时间。如果 p_tuple 未指定,默认time.localtime()的值。

 返回值:指定格式的时间

 返回值类型:字符串型

常用格式及说明如下:

格式

说明

%m

几月份(01 - 12)

%d

一个月中的第几天(01 - 31)

%H

一天中的第几个小时(00 - 23)

%j

一年中的第几天(001 - 366)

%Y

公历的年份

%T

时:分:秒 (格式输出当前时间)

%F

年 - 月 - 日 (格式输出当前时间)

%M

分钟数(00 - 59)

%S

秒(01 - 61)

tuple_time = time.localtime()
# 按照天-月格式输出时间
print(time.strftime('%d-%m',tuple_time))

输出结果:

datetime不显示 毫秒 python_元组_08

tuple_time = time.localtime()
# 按照年/月/日格式输出当前时间
print(time.strftime('%Y/%m/%d',tuple_time))

输出结果:

datetime不显示 毫秒 python_格式输出_09

tuple_time = time.localtime()
# 按照 时:分:秒 格式输出当前时间
print(time.strftime('%T',tuple_time))

输出结果:

datetime不显示 毫秒 python_字符串_10

tuple_time = time.localtime()
# 按照 年-月-日 格式输出当前时间
print(time.strftime('%F',tuple_time))

输出结果:

datetime不显示 毫秒 python_字符串_11


3. 将时间戳转换为字符串时间

time.ctime()

 返回值:字符串时间

 返回值类型:字符串型

time_now = os.path.getctime('data.txt')
print(time_now)
print(time.ctime(time_now))

输出结果:

datetime不显示 毫秒 python_格式输出_12

3. datetime模块

首先导入模块:

from datetime import date
from datetime import datetime
from datetime import timedelta

1. 当前日期
date.today():按照 年 - 月 - 日 格式输出当前日期

print(date.today())

输出结果:

datetime不显示 毫秒 python_元组_13


datetime.now():按照 年 - 月 - 日   时:分:秒 的格式输出当前时间

print(datetime.now())

datetime不显示 毫秒 python_元组_14


2. 如何计算三天前的时间和三天后的时间

d = date.today()
delta = timedelta(days=3)
print('3天后是: ', d + delta)
print('3天前是: ', d - delta)

输出结果如下:

datetime不显示 毫秒 python_格式输出_15


3. 如何计算两个小时前的时间和两个小时后的时间

now_hour = datetime.now()
delta = timedelta(hours=2)
print('两个小时前是: ',now_hour - delta)
print('两个小时后是: ',now_hour + delta)

运行结果:

datetime不显示 毫秒 python_元组_16

4. 返回两个时间 想计算两个时间之间的时间差

now_time = datetime.now()
print('当前时间: ', now_time)
pwd_time = os.path.getmtime('data.txt')
print('最近文件修改时间: ', pwd_time)
pwd_time_obj = datetime.fromtimestamp(pwd_time)
print('最近文件修改时间的字符串时间: ', pwd_time_obj)
delta = now_time - pwd_time_obj
print('文件最后一次修改到现在的时间差: ', delta)

运行结果:

datetime不显示 毫秒 python_字符串_17