一、time模块
常用函数
1. time()函数
time()函数返回的是时间戳(timestamp)。所谓时间戳指的是从1970年1月1日00:00:00开始按秒计算的偏移量。其他返回时间戳方式的函数还有clock()。

实例

import time
time.time()

1515117751.8810253

2. ctime()函数
ctime()函数可以将一个时间戳转化为字符串的形式,默认time.time()为参数。(convert time in seconds to string)

实例

import time
time.ctime()
'Fri Jan 5 10:21:29 2018'
time.ctime(1500000000)
'Fri Jul 14 10:40:00 2017'

4.gmtime()函数
gmtime()用于获取UTC时间,UTC时间实际就是格林尼治时间,它与中国时间的时差为八个小时。

实例

import time
time.gmtime()
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5, tm_hour=3, tm_min=27, tm_sec=18, tm_wday=4, tm_yday=5, tm_isdst=0)

5. localtime()函数

localtime()用于获取当前时区的当前时间。

实例

import time
time.localtime()
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=5,tm_hour=11, tm_min=28, tm_sec=48, tm_wday=4, tm_yday=5, tm_isdst=0)

6. strftime()函数
strftime()把一个代表时间的元组或者struct_time(如time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。

实例

time.strftime("%Y-%m-%d %X")
'2018-01-05 11:20:21'
time.strftime("%Y-%m-%d %H:%M:%S")
'2018-01-05 11:21:30'
time.strftime("%Y-%m-%d %X", time.localtime())
'2018-01-05 11:23:04'

* format time格式化表示*

格式 含义
%Y 完整的年份
%m 月份(01 - 12)
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%M 分钟数(00 - 59)
%S 秒(01 - 61)
%X 本地相应时间
%x 本地相应日期
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%p 本地am或者pm的相应符
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始
%y 去掉世纪的年份(00 - 99)
%Z 时区的名字(如果不存在为空字符)
%% ‘%’字符
注:表中加粗部分为最常用格式

7. strptime()函数
strptime()把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作

实例

import time
time.strptime('2018-01-05 10:50:06','%Y-%m-%d %X')
time.struct_time(tm_year=2018,tm_mon=1,tm_mday=5,tm_hour=10,tm_min=50,tm_sec=6, tm_wday=4, tm_yday=5, tm_isdst=-1)

8. mktime()函数
mktime()可以将struct_time转换成用时间的浮点数表示

实例

time.mktime(time.gmtime())
1515094387.0
time.mktime(time.localtime())
1515123246.0

9. sleep()函数
线程推迟指定的时间运行,单位为秒。

import time
time.sleep(3) #表示延迟3秒后程序继续运行

小结:
time模块中时间表现的格式主要有3种:
1. timestamp 时间戳
2. tuple或者struct_time 时间元组,共有九个元素组
3. formattime格式化字符串

它们之间的转化如图所示:

二、datetime模块
datetime模块包含一个datetime类,通过from datetime import datetime导入的就是datetime这个类。

常见操作
1. 获取当前日期

from datetime import datetime
now = datetime.now()
now
datetime.datetime(2018, 1, 5, 16, 2, 47, 929705)
print(now)
2018-01-05 16:02:47.929705

2. 获取指定日期和时间

from datetime import datetime
dt=datetime(2018, 1, 1, 1, 1)
print(dt)
2018-01-01 01:01:00

3. datetime类型转换为timestamp
只需要简单调用timestamp()方法

from datetime import datetime
dt=datetime(2018, 1, 1, 1, 1)
dt.timestamp()
1514739660.0

4. timestamp转换为datetime
使用datetime提供的fromtimestamp()方法

from datetime import datetime
t = 1514739660.0
print(datetime.fromtimestamp(t))
2018-01-01 01:01:00

5. str转换为datetime
当日期和时间为字符串时,需要把str转换为datetime,可通过datetime.strptime()实现。

from datetime import datetime
dt= datetime.strptime('2018-1-1 1:11:11', '%Y-%m-%d %H:%M:%S')
print(dt)
2018-01-01 01:11:11

6. datetime转换为str
如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()实现的。

from datetime import datetime
now = datetime.now()
now
datetime.datetime(2018, 1, 5, 16, 22, 50, 394736)
now.strftime('%Y-%m-%d %H:%M:%S')
'2018-01-05 16:22:50'

7. datetime加减
对日期和时间进行加减需要导入timedelta这个类

from datetime import datetime, timedelta
now = datetime.now()
now
datetime.datetime(2018, 1, 5, 16, 22, 50, 394736)
now + timedelta(hours=10)
datetime.datetime(2018, 1, 6, 2, 22, 50, 394736)
now - timedelta(days=10)
datetime.datetime(2017, 12, 26, 16, 22, 50, 394736)
now + timedelta(days=10, hours=12)
datetime.datetime(2018, 1, 16, 4, 22, 50, 394736)

小结
datetime模块定义了5个类:

序号 类 含义
1 datetime.datetime 表示日期时间的类
2 datetime.timedelta 表示时间间隔,即两个时间点的间隔
3 datetime.date 表示日期的类
4 datetime.time 表示时间的类
5 datetime.tzinfo 时区的相关信息

# 转成时间戳
a= "2018-02-03 15:01:32"
timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")
timeStamp = int(time.mktime(timeArray))

  

# 转时间格式
import datetime
time = "20180312"
img_time = datetime.datetime.strptime(time, "%Y%m%d").strftime("%Y-%m-%d")

  

#导入日期时间模块
import datetime
#获得今天的日期
today = datetime.date.today()
#用今天日期减掉时间差,参数为1天,获得昨天的日期
yesterday = today - datetime.timedelta(days=1)
#用今天日期加上时间差,参数为1天,获得明天的日期
tomorrow = today + datetime.timedelta(days=1)
# 一个月的第一天
fist = datetime.date(datetime.date.today().year, datetime.date.today().month - 1, 1)
# 一个月的最后一天
last = datetime.date(datetime.date.today().year, datetime.date.today().month, 1) - datetime.timedelta(1)

时间戳转日期

time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(1517974137)))
time.strftime('%Y-%m-%d %H:%M:%S', time.time.localtime())

日期循环

import datetime

begin = datetime.date(2019, 8, 1)
end = datetime.date(2019, 10, 14)
for i in range((end - begin).days + 1):
day = str(begin + datetime.timedelta(days=i))
print(day)

  

  

time和datetime的更多相关文章

  1. C# DateTime与时间戳转换

    C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...

  2. C# DateTime日期格式化

    在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. ...

  3. 在面试中忽然发现DateTime的一些...

    今天说说我面试中碰到的一个小问题,在我问起DateTime为什么无法赋值NULL值,一般第一反应都认为它是值类型,不是引用类型,但随后我查阅了度娘自我学习到它是结构类型,那么随之而然就无法赋值NULL ...

  4. LINQ to SQL语句(14)之Null语义和DateTime

    Null语义 说明:下面第一个例子说明查询ReportsToEmployee为null的雇员.第二个例子使用Nullable<T>.HasValue查询雇员,其结果与第一个例子相同.在第三 ...

  5. .NET DateTime类型变量作为参数时设置默认值

    一个小的 Tips. .NET 中函数参数的默认值需要是编译时常量.如果参数是引用类型,可以设置Null,如果是值类型,可以设置相应的编译时常量,如整型可以用整数,但对于DateTime(结构体,值类 ...

  6. BCS datetime 时间区间问题

    BCS 整合sql表时发现以下问题: datetime字段在列表中带了时区,比如插入12-6号的数据,在sql中显示的是12-5 date类型字段无法正确识别,插入成功但报错 LobSystem (外 ...

  7. C#中DateTime.Ticks属性及Unix时间戳转换

    1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...

  8. WPF 自定义DateControl DateTime控件

    自定义日期控件,月份选择.如下是日期的一些效果图. 具体的样式.颜色可以根据下面的代码,自己调节即可    1.日期控件的界面 <UserControl x:Class="WpfApp ...

  9. JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决

    JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...

  10. python标准模块(time、datetime及hashlib模块)

    一.time,datetime模块 时间相关的操作 import time time.sleep(5) # ==> 停顿多少秒 print(time.time()) # ==> 返回时间戳 ...

随机推荐

  1. HttpFileCollection类

    最近在学HttpRequest类搞文件上传的时候看到Request.Files返回了HttpFileCollection 这个类的一个对象,这个类用于获取浏览器上传的文件集合,在文件上传的时候可以通过 ...

  2. golang 自定义类型的排序sort

    sort包中提供了很多排序算法,对自定义类型进行排序时,只需要实现sort的Interface即可,包括: func Len() int {... } func Swap(i, j int) {... ...

  3. 使用Jquery实现Win8开始菜单效果的站点导航

    前言: 本人是个Metro控,自我感觉到处都充斥着Metro的元素,个人认为这种风格强调表现以及内容,以简洁著称,不过也不是大部分都喜欢,也有一些人和你讨厌这种风格~不过本人非常喜欢这种风格,看我博客 ...

  4. CSS-DOM操作

    所谓CSS-DOM操作就是读取和设置style对象的各种属性,style属性很强大,但是美中不足的是无法通过它来提取到通过外部CSS设置的样式信息,然而在家jQuery中,这些就可以通过css()方法 ...

  5. TraceLog.cs 累积 C#

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Dia ...

  6. 接口测试3-2csv格式

    csv文件数据 IntellJ IDEA打开终端:view-tool windows-terminal,可以在终端中查看文件路径 阿里 马云 京东 刘强东 京东 马化腾 #java //读取csv文件 ...

  7. tsql 循环id读取

    declare @IDList as varchar(max) declare @ID as int declare @i as int set @IDList='' )) + ',' from ta ...

  8. 【Codeforces】CF 165 E Compatible Numbers(状压dp)

    题目 传送门:QWQ 分析 很难想到方向,但有方向了就很easy了. 我们如何减少不必要的计算? 如果我们知道了$ 100111 $的相容的数,$ 100101 $的相容数和他是完全一样的. 我们就靠 ...

  9. 【Codeforces】CF 2 B The least round way(dp)

    题目 传送门:QWQ 分析 求结尾0的数量QwQ. 10只能是$ 2 \times 5 $,我们预处理出每个数因子中2和5的数量. 我们接着dp出从左上到右下的经过的最少的2的数量和最少的5的数量.两 ...

  10. python 之路之函数01

    一   函数 1  那么要想学习函数,我们首先应该知道函数是什么? 我们这里所说的函数与数学中的函数是不同的概念,在这里我们可以把函数看成我们写代码过程中需要用到的工具. 2  那么这个‘工具’有什么 ...