strptime("string format")字符串如“20130512000000”格式的 输入处理函数

localtime(float a)时间戳的输入处理函数

二者返回struct_time结构数据,

由strftime(format, float/time_struct) 和mktime(struct_time)处理后输出,返回日期格式字符串和秒数。

#设a为字符串

import time

a= "2011-09-28 10:00:00"

对时间处理一般都先转化为struct_time结构,在进行处理,举例如下:

#1中间过程,一般都需要将字符串转化为时间数组

time.strptime(a,'%Y-%m-%d %H:%M:%S')

>>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday=1, tm_yday=270, tm_isdst=-1)

#2将"2011-09-28 10:00:00"转化为时间戳

time.mktime(time.strptime(a,'%Y-%m-%d %H:%M:%S'))

>>1317091800.0

#3将时间戳转化为localtime

x = time.localtime(1317091800.0)#localtime参数为float类型,这里1317091800.0为float类型

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

>>2011-09-27 10:50:00[/python]

my practice:

定义好格式:

ISFORMAT="%Y-%m-%d %H:%M:%S"

    TIMESTAMP="%Y%m%d%H%M%S"

    start=1375063206.926#1375099552927

    end=1375099591.118

时间戳为总秒数,可以进行算术运算,10位精确到秒,13位精确到毫秒。

测试一下time:

    print time.time()

    print type(time.ctime())

print time.mktime(time.localtime())#测试时间戳

1,时间戳转化为struct_time

    start_t=time.localtime(start)

    end_t=time.localtime(end)

2,struct_time转化为指定格式日期字符串

    print time.strftime(ISFORMAT,start_t)

    print time.strftime(ISFORMAT,end_t)

日期字符串的读取:

tt="201307291008"

print time.strptime(tt,TIMESTAMP)#读入为struct_time

    print time.mktime(time.strptime(tt,TIMESTAMP))#变为时间戳

so ,you can find that :

strptime("string format") and  localtime(float a) will both return a struct_time class object

strftime(format, float/time_struct) return a string to display the date of string

mktime(struct_time) will generate a timestamp and return it

自己写的英文自己都不想读了。

再给出一个完成的例子,涉及到时间戳的计算

import sys

import os

import time

import datetime

def readline():

    return

if __name__ == '__main__':

 ##    keylist={}#{"name":"value"}

##    filecontent= open("g:\\test.txt","r")#file("name.txt","r")

##        #for line in sys.stdin:

##    for line in filecontent.readlines():

##        print line

    ISFORMAT="%Y-%m-%d %H:%M:%S"

    TIMESTAMP="%Y%m%d%H%M%S"

    start=1375063206.926#1375099552927

    end=1375099591.118

    print time.time()

    print type(time.ctime())

    start_t=time.localtime(start)

    end_t=time.localtime(end)

    print time.strftime(ISFORMAT,start_t)

    print time.strftime(ISFORMAT,end_t)

    print "test now:"

    tt="20130729100823"

    #time.strptime(tt,TIMESTAMP)

    print time.mktime(time.strptime(tt,TIMESTAMP))

    print time.strftime(ISFORMAT,time.strptime(tt,TIMESTAMP))

    #print time.mktime(time.localtime())

    testtime="20130729100823"

    timeof=time.mktime(time.strptime(testtime,TIMESTAMP))

    print type(timeof)

    timeof+=3600.000

    print timeof

    dd = time.localtime(timeof)

    print type(dd)

    print time.strftime(ISFORMAT,dd)

一、简介

time模块提供各种操作时间的函数

说明:一般有两种表示时间的方式:

第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的

第二种以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同

year (four digits, e.g. 1998)

month (1-12)

day (1-31)

hours (0-23)

minutes (0-59)

seconds (0-59)

weekday (0-6, Monday is 0)

Julian day (day in the year, 1-366)

DST (Daylight Savings Time) flag (-1, 0 or 1) 是否是夏令时

If the DST flag is 0, the time is given in the regular time zone;

if it is 1, the time is given in the DST time zone;

if it is -1, mktime() should guess based on the date and time.

夏令时介绍:http://baike.baidu.com/view/100246.htm

UTC介绍:http://wenda.tianya.cn/wenda/thread?tid=283921a9da7c5aef&clk=wttpcts



二、函数介绍

1.asctime()

asctime([tuple]) -> string

将一个struct_time(默认为当时时间),转换成字符串

Convert a time tuple to a string, e.g. 'Sat Jun 06 16:26:11 1998'.

When the time tuple is not present, current time as returned by localtime()

is used.



2.clock()

clock() -> floating point number

该函数有两个功能,

在第一次调用的时候,返回的是程序运行的实际时间;

以第二次之后的调用,返回的是自第一次调用后,到这次调用的时间间隔



示例:

  1. import time
  2. if __name__ == '__main__':
  3. time.sleep(1)
  4. print "clock1:%s" % time.clock()
  5. time.sleep(1)
  6. print "clock2:%s" % time.clock()
  7. time.sleep(1)
  8. print "clock3:%s" % time.clock()

输出:

clock1:3.35238137808e-006

clock2:1.00004944763

clock3:2.00012040636

其中第一个clock输出的是程序运行时间

第二、三个clock输出的都是与第一个clock的时间间隔



3.sleep(...)

sleep(seconds)

线程推迟指定的时间运行,经过测试,单位为秒,但是在帮助文档中有以下这样一句话,这关是看不懂

“The argument may be a floating point number for subsecond precision.”



4.ctime(...)

ctime(seconds) -> string

将一个时间戳(默认为当前时间)转换成一个时间字符串

例如:

time.ctime()

输出为:'Sat Mar 28 22:24:24 2009'



5.gmtime(...)

gmtime([seconds]) -> (tm_year, tm_mon, tm_day, tm_hour, tm_min,tm_sec, tm_wday, tm_yday, tm_isdst)

将一个时间戳转换成一个UTC时区(0时区)的struct_time,如果seconds参数未输入,则以当前时间为转换标准





6.localtime(...)

localtime([seconds]) -> (tm_year,tm_mon,tm_day,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)

将一个时间戳转换成一个当前时区的struct_time,如果seconds参数未输入,则以当前时间为转换标准





7.mktime(...)

mktime(tuple) -> floating point number

将一个以struct_time转换为时间戳



8.strftime(...)

strftime(format[, tuple]) -> string

将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出

python中时间日期格式化符号:

%y 两位数的年份表示(00-99)

%Y 四位数的年份表示(000-9999)

%m 月份(01-12)

%d 月内中的一天(0-31)

%H 24小时制小时数(0-23)

%I 12小时制小时数(01-12)

%M 分钟数(00=59)

%S 秒(00-59)



%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化的月份名称

%B 本地完整的月份名称

%c 本地相应的日期表示和时间表示

%j 年内的一天(001-366)

%p 本地A.M.或P.M.的等价符

%U 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%X 本地相应的时间表示

%Z 当前时区的名称

%% %号本身



9.strptime(...)

strptime(string, format) -> struct_time

将时间字符串根据指定的格式化符转换成数组形式的时间

例如:

2009-03-20 11:45:39 对应的格式化字符串为:%Y-%m-%d %H:%M:%S

Sat Mar 28 22:24:24 2009 对应的格式化字符串为:%a %b %d %H:%M:%S %Y



10.time(...)

time() -> floating point number

返回当前时间的时间戳



三、疑点

1.夏令时

在struct_time中,夏令时好像没有用,例如

a = (2009, 6, 28, 23, 8, 34, 5, 87, 1)

b = (2009, 6, 28, 23, 8, 34, 5, 87, 0)

a和b分别表示的是夏令时和标准时间,它们之间转换为时间戳应该相关3600,但是转换后输出都为646585714.0



四、小应用

1.python获取当前时间

time.time() 获取当前时间戳

time.localtime() 当前时间的struct_time形式

time.ctime() 当前时间的字符串形式



2.python格式化字符串

格式化成2009-03-20 11:45:39形式

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



格式化成Sat Mar 28 22:24:24 2009形式

time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())



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

a = "Sat Mar 28 22:24:24 2009"

b = time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))

Python的time(时间戳与时间字符串互相转化)的更多相关文章

  1. mysql时间操作(时间差和时间戳和时间字符串的互转)

    mysql时间操作(时间差和时间戳和时间字符串的互转) 两个时间差: MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数. select dat ...

  2. JS时间戳与时间字符串之间的相互转换

    时间字符串 转 时间戳 /** * 时间字符串 转 时间戳 * @param {String} time_str 时间字符串(格式"2014-07-10 10:21:12") * ...

  3. (转)golang获取当前时间、时间戳和时间字符串及它们之间的相互转换

    原文连接: https://blog.csdn.net/skh2015java/article/details/70051512 1.获取当前时间 currentTime:=time.Now() // ...

  4. Python 时间戳与时间字符串互相转

    #设a为字符串 import time a = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组 time.strptime(a,'%Y-% ...

  5. Python时间戳与时间字符串互相转换实例代码

    #设a为字符串import timea = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组time.strptime(a,'%Y-%m-% ...

  6. python时间戳和时间字符串的转换

    # -*- coding: utf-8 -*-# date=2020/3/27import timeimport uuid def getTimestamp_1770(): now_1770 = ro ...

  7. linux时间戳和时间格式的转化

    1.将时间戳转化为yyyy-MM-dd HH:mm:ss时间格式 date -d @时间戳(秒) 2.设置服务器时间---特别注意使用   date -s 时间

  8. 常见的时间字符串与timestamp之间的转换 时间戳

    这里说的字符串不是一般意义上的字符串,是指在读取日期类型的数据时,如果还没有及时解析字符串,它就还不是日期类型,那么此时的字符串该怎么与时间戳之间进行转换呢? ① 时间字符串转化成时间戳 将时间字符串 ...

  9. 023.Python的随机模块和时间模块

    一 random 随机模块 1.1 获取随机0-1之间的小数(左闭右开)  0<= x < 1 import random res = random.random() print(res) ...

随机推荐

  1. Docker常见仓库Node.js

    Node.js 基本信息 Node.js是基于 JavaScript 的可扩展服务端和网络软件开发平台. 该仓库提供了 Node.js 0.8 ~ 0.11 各个版本的镜像. 使用方法 在项目中创建一 ...

  2. Python3 JSON 数据解析

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. Python3 中可以使用 json 模块来对 JSON 数据进 ...

  3. iOS中的颜色

    最近在改Bug的时候,才注意到iOS 中的颜色竟然也大有文章,特来记录一下. 先说一下问题,因为某界面中有用xib实现的一个view,而这个view 只在UIColletionView的layout ...

  4. 纪念 参与GitHub上第一个组织

    颇为起伏的一天. 今天大连的风, 甚是喧嚣. 不过,很高兴,小项目被fork了,也成功成为了一个开源贡献者. https://github.com/HostsTools 组织 上的那个Windows- ...

  5. premake设置静态运行库

    premake设置静态运行库(金庆的专栏)链接protobuf库时,碰到RuntimeLibrary不匹配:1>libprotobufd.lib(int128.obj) : error LNK2 ...

  6. Python 通过继承实现标准对象的子类

    idict是dict的子类,它的键值和属性是同步的,并且有强大的默认值机制. 例如,假设x是idict的一个实例,且x['a']['b']=12,则有x.a.b=12.反之亦然; 假设'c'不在x的键 ...

  7. Redis 学习笔记2:redis.conf配置文件详解

    Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf. 参数说明: 参数说明 redis.conf 配置项说明如下: 1. Redis默认不是以守护进程的方式运行,可以通 ...

  8. [Mysql]mysql windows下配置文件

    环境是win7 mysql5.6版本 测试下配置文件是否可用(之前没用过windows下的msyql配置) 修改配置前查询下: mysql> show variables like '%max_ ...

  9. PyCharm 开发Django ,错误汇总

    近期略微接触了一下Django.在学习的过程中可谓是坎坎坷坷,遇到了很多的问题. 下面就来谈一谈我对Django的一点点的见解. Django项目的创建 使用PyCharm来开发Django项目是非常 ...

  10. spring源码系列(一)sring源码编译 spring源码下载 spring源码阅读

    想对spring框架进行深入的学习一下,看看源代码,提升和沉淀下自己,工欲善其事必先利其器,还是先搭建环境吧. 环境搭建 sping源码之前是svn管理,现在已经迁移到了github中了,新版本基于g ...