模块 - time/datetime
time 模块
time模块方法:
>>> import time
>>> time.time() #时间戳 秒级别
1519212085.6211221 #从1970年到现在一共度过1519212085秒;
>>> time.time()/3600/24/365 #48年 1970-2018年有这么多秒 1h=3600s
48.17390346104816
>>> time.localtime() #本地时间
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=21, tm_hour=20, tm_min=8, tm_sec=33, tm_wday=2, tm_yday=52, tm_isdst=0)
>>> time.localtime(2342342434)
time.struct_time(tm_year=2044, tm_mon=3, tm_mday=23, tm_hour=18, tm_min=40, tm_sec=34, tm_wday=2, tm_yday=83, tm_isdst=0)
>>> a=time.localtime()
>>> a
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=21, tm_hour=19, tm_min=28, tm_sec=45, tm_wday=2, tm_yday=52, tm_isdst=0)
>>> '%s-%s-%d'%(a.tm_year,a.tm_mon,a.tm_mday)
'2018-2-21'
>>> time.mktime(a) #把localtime()时间反转时间成时间戳
1519214861.0
0 tm_year #年 1970-2018
1 tm_mon #月 1-12
2 tm_mday #日 1-31
3 tm_hour #时 0-23
4 tm_min #分 0-59
5 tm_sec #秒 0-59
6 tm_wday #一周中得第几天 0-6
7 tm_yday #一年中得第几天 0-365
8 tm_isdst #是否是夏令时 0-1
>>> time.gmtime() #比北京时间晚8点 UTC时区(0时区)
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=21, tm_hour=11, tm_min=50, tm_sec=46, tm_wday=2, tm_yday=52, tm_isdst=0)
>>> time.sleep(2) #睡一会 单位为 秒
>>> time.asctime() #表示时间得另外一种方法
'Wed Feb 21 20:53:43 2018'
>>> time.ctime() #表示时间得另外一种方法
'Wed Feb 21 20:57:16 2018'
>>> time.ctime(3123)
'Thu Jan 1 08:52:03 1970'
>>> time.ctime(0)
'Thu Jan 1 08:00:00 1970'
>>> time.strftime('%Y-%m-%d %H:%M:%S') #表示时间 字符串
'2018-02-21 21:04:48'
>>> a=time.localtime(2432423423)
>>> a
time.struct_time(tm_year=2047, tm_mon=1, tm_mday=30, tm_hour=9, tm_min=10, tm_sec=23, tm_wday=2, tm_yday=30, tm_isdst=0)
>>> time.strftime('%Y-%m-%d %H:%M:%S',a) #表示某一时间戳得 字符串
'2047-01-30 09:10:23'
>>> time.strftime('%Y-%m-%d %H:%M:%S %a',a) #a 周几
'2047-01-30 09:10:23 Wed'
>>> time.strftime('%Y-%m-%d %H:%M:%S %A',a) #A 周几
'2047-01-30 09:10:23 Wednesday'
>>> time.strftime('%y-%m-%d %H:%M:%S %b') #b 月
'18-02-21 21:22:19 Feb'
>>> time.strftime('%y-%m-%d %H:%M:%S %B') #B 月
'18-02-21 21:22:29 February'
>>> time.strftime('%Y-%m-%d %H:%M:%S %p',a) #p 上午下午
'2047-01-30 09:10:23 AM'
>>> time.strftime('%Y-%m-%d %H:%M:%S %U') #U 一年得第几周
'2018-02-21 21:08:15 07'
>>> time.strftime('%Y-%m-%d %H:%M:%S %w') #w 一周得第几天
'2018-02-21 21:09:55 3'
>>> time.strftime('%y-%m-%d %H:%M:%S %z') #z 东8区时间
'18-02-21 21:10:38 +0800'
>> time.strftime('%Y-%m-%d %H:%M:%S %Z') #Z 时间标准
'2018-02-21 21:28:22 中国标准时间' >>> s=time.strftime('%Y-%m-%d %H:%M:%S') #时间字符串 格式 时间戳来回转换
>>> s
'2018-02-21 21:32:19'
>>> s2= time.strptime(s,'%Y-%m-%d %H:%M:%S')
>>> s2
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=21, tm_hour=21, tm_min=32, tm_sec=19, tm_wday=2, tm_yday=52, tm_isdst=-1)
>>> time.mktime(s2)
1519219939.0
字符串转时间格式对应表
Meaning Notes
%a Locale’s abbreviated weekday name.
%A Locale’s full weekday name.
%b Locale’s abbreviated month name.
%B Locale’s full month name.
%c Locale’s appropriate date and time representation.
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%I Hour (12-hour clock) as a decimal number [01,12].
%j Day of the year as a decimal number [001,366].
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].
%p Locale’s equivalent of either AM or PM. (1)
%S Second as a decimal number [00,61]. (2)
%U Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0. (3)
%w Weekday as a decimal number [0(Sunday),6].
%W Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0. (3)
%x Locale’s appropriate date representation.
%X Locale’s appropriate time representation.
%y Year without century as a decimal number [00,99].
%Y Year with century as a decimal number.
%z Time zone offset indicating a positive or negative time difference from UTC/GMT of the form +HHMM or -HHMM, where H represents decimal hour digits and M represents decimal minute digits [-23:59, +23:59].
%Z Time zone name (no characters if no time zone exists).
%% A literal '%' character.

--------------------------------------
总结:time模块
1.time.time()
2.time.localtime()
3.time.localtime(2342342434)
4.time.mktime(a)
5.time.gmtime()
6.time.sleep(2)
7.time.asctime()
8.time.ctime()
9.time.ctime(3123)
10.time.strftime('%Y-%m-%d %H:%M:%S')
11.time.strftime('%Y-%m-%d %H:%M:%S',a)
12.time.strftime('%Y-%m-%d %H:%M:%S %A',a)
13.time.strptime(s,'%Y-%m-%d %H:%M:%S')
-----------------------------------------------------------
datetime模块
相比于time模块 datetime模块得接口更直观更容易调用 重点是进行时间运算
方法:
>>> a=datetime.datetime.now()
>>> a
datetime.datetime(2018, 2, 21, 21, 59, 57, 526811)
>>> a.year
2018
>>> a.timetuple()
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=21, tm_hour=21, tm_min=59, tm_sec=57, tm_wday=2, tm_yday=52, tm_isdst=-1)
>>> d2=datetime.date.fromtimestamp(time.time()) #根据时间戳快速拿到年月日
>>> d2
datetime.date(2018, 2, 21)
>>> d2.timetuple() #注意 时分秒 丢了
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=52, tm_isdst=-1) 时间运算:
>>> datetime.datetime.now()-datetime.timedelta(days=1)
datetime.datetime(2018, 2, 20, 22, 13, 4, 891830)
>>> datetime.datetime.now()-datetime.timedelta(days=3)
datetime.datetime(2018, 2, 18, 22, 14, 7, 771268)
>>> datetime.datetime.now()-datetime.timedelta(hours=3)
datetime.datetime(2018, 2, 21, 19, 14, 33, 758609)
>>> datetime.datetime.now()+datetime.timedelta(hours=3)
datetime.datetime(2018, 2, 22, 1, 14, 48, 426850)
>>> datetime.datetime.now()+datetime.timedelta(minutes=10)
datetime.datetime(2018, 2, 21, 22, 25, 32, 615892)
>>> datetime.datetime.now()+datetime.timedelta(seconds=10)
datetime.datetime(2018, 2, 21, 22, 16, 29, 661140) 时间替换:
>>> s=datetime.datetime.now()
>>> s
datetime.datetime(2018, 2, 21, 22, 21, 34, 62949)
>>> s.replace(year=2016)
datetime.datetime(2016, 2, 21, 22, 21, 34, 62949)
>>> s.replace(year=2016,month=8)
datetime.datetime(2016, 8, 21, 22, 21, 34, 62949)
>>> s.replace(year=2016,month=8,day=2)
datetime.datetime(2016, 8, 2, 22, 21, 34, 62949)
总结:
1.方法:a=datetime.datetime.now() a.year a.timetuple() d2=datetime.date.fromtimestamp(time.time())
2.时间运算:datetime.datetime.now()-datetime.timedelta(days=3)
3.时间替换:s=datetime.datetime.now() s.replace(year=2016,month=8)
补充:
#把datetime转成字符串
def datetime_toString(dt):
return dt.strftime("%Y-%m-%d-%H") #把字符串转成datetime
def string_toDatetime(string):
return datetime.strptime(string, "%Y-%m-%d-%H") #把字符串转成时间戳形式
def string_toTimestamp(strTime):
return time.mktime(string_toDatetime(strTime).timetuple()) #把时间戳转成字符串形式
def timestamp_toString(stamp):
return time.strftime("%Y-%m-%d-%H", tiem.localtime(stamp)) #把datetime类型转外时间戳形式
def datetime_toTimestamp(dateTim):
return time.mktime(dateTim.timetuple())
#coding=utf-8
import time
import datetime def yes_time():
#获取当前时间
now_time = datetime.datetime.now()
#当前时间减去一天 获得昨天当前时间
yes_time = now_time + datetime.timedelta(days=-1)
#格式化输出
yes_time_str = yes_time.strftime('%Y-%m-%d %H:%M:%S')
print yes_time_str # 2017-11-01 22:56:02 def dif_time():
#计算两个时间之间差值
now_time = datetime.datetime.now()
now_time = now_time.strftime('%Y-%m-%d %H:%M:%S')
d1 = datetime.datetime.strptime('2017-10-16 19:21:22', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime(now_time, '%Y-%m-%d %H:%M:%S')
#间隔天数
day = (d2 - d1).days
#间隔秒数
second = (d2 - d1).seconds
print day #
print second #13475 注意这样计算出的秒数只有小时之后的计算额 也就是不包含天之间差数 def unix_time():
#将python的datetime转换为unix时间戳
dtime = datetime.datetime.now()
un_time = time.mktime(dtime.timetuple())
print un_time #1509636609.0
#将unix时间戳转换为python 的datetime
unix_ts = 1509636585.0
times = datetime.datetime.fromtimestamp(unix_ts)
print times #2017-11-02 23:29:45
模块 - time/datetime的更多相关文章
- Python常用模块(time, datetime, random, os, sys, hashlib)
time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运 ...
- python3 time模块与datetime模块
time模块 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平 ...
- Time模块和datetime模块
Time模块和datetime模块 一. 调用 import time #调用time模块 二.使用方法 1.time.time 拿到时间戳.以Linux诞生年份1970年开始计算到程序执 ...
- python 时间模块(time ,datetime,calendar)
Python中提供了时间相关的内置模块,我们主要用的是:time模块.datetime模块和calendar模块 ⽇期格式化的标准: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(00 ...
- Python常用模块time & datetime &random 模块
时间模块前言 在Python中,与时间处理有关的模块就包括:time,datetime 一.在Python中,通常有这几种方式来表示时间: 时间戳 格式化的时间字符串 元组(struct_time)共 ...
- python中time模块和datetime模块
time模块和datetime模块 时间分为三种模式(time 模块) 时间戳 (time.time()) 格式化字符串 (time.strftime(%Y-%m-%d %H:%M:%S %p)) ...
- Python之路(第十六篇)xml模块、datetime模块
一.xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单, xml比较早,早期许多软件都是用xml,至今很多传统公司如金融行业的很多系统的接口还主要 ...
- python內建模块之datetime
from:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193755 ...
- Python模块学习 ---- datetime
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致.相比于time模块, ...
- (转)python time模块和datetime模块详解
python time模块和datetime模块详解 原文:http://www.cnblogs.com/tkqasn/p/6001134.html 一.time模块 time模块中时间表现的格式主要 ...
随机推荐
- vivado编译出错 [Synth 8-729] [Synth 8-787]
http://www.cnblogs.com/pejoicen 打开vivado工程后,发现右上角如下图所示: 重新编译这两个ip核后,对整个工程synthesis,工程报错 [Synth 8-7 ...
- js计数器
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- pycharm 社区版
这个是免费版.到3.1.13 http://pan.baidu.com/s/1bnvPdtt 没用过idea的商业版,不知道为什么它的更新那么蛋疼,不能增量更新,每次都得手动下载完整的压缩包.
- Java中的BlockingQueue小结
BlockingQueue是java.util.concurrent下的主要用来控制线程同步的工具. 主要的方法是:put.take一对阻塞存取:add.poll一对非阻塞存取. 插入: 1) add ...
- java.lang.IllegalArgumentException: SessionContext must be an HTTP compatible implementation.:模块化本地测试shiro的一些总结
项目由于是多模块的,所以,测试的时候我想现将shiro框架进行本地测试,然后再放入框架里面,但是这个困扰我了两天了都,其实我应该想到的,只是想多试试,最后还不如多想想 先说一下系统的基本情况,项目是多 ...
- RGB565 转换 BMP24
今晚有心情,就做完了BMP16(RGB565) 转换成BMP24 的小程序.其中最关键的地方是: // k,WORD类型,是RGB565 的一个点的数据(可以认为是灰度). r=(k & 0x ...
- 【vijos】1763 Wormhole(贪心)
https://vijos.org/p/1764 首先第一个虫洞一定是建在1号点. 证明如下: 假设一个虫洞在a,一个在b,a<b,那么走到k点的最短距离为 min{|x1-xk|, |x1-x ...
- combox使用要点
<select id="node_type" name="node_type" class="easyui-combobox" req ...
- spark(1.1) mllib 源码分析(三)-朴素贝叶斯
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/4042467.html 本文主要以mllib 1.1版本为基础,分析朴素贝叶斯的基本原理与源码 一.基本原 ...
- ytu 2231: 交集问题(线性表)(数据结构,链表练习)
2231: 交集问题(线性表) Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 6 Solved: 3[Submit][Status][Web Boar ...