`
angelguo
  • 浏览: 118287 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python的time(时间戳与时间字符串互相转化)

阅读更多

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模块的时间戳,时间字符串格式化与转换方法(13位时间戳)

    通过以上介绍,我们可以看出Python的time模块提供了灵活且强大的时间处理功能,无论是处理时间戳还是时间字符串,都有对应的函数可以方便地进行转换和格式化。这些函数在日常开发中非常实用,可以帮助开发者更好地...

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

    #中间过程,一般都需要将字符串转化为时间数组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_...

    Python获取昨天、今天、明天开始、结束时间戳的方法

    在转化的过程中,我们首先需要使用time模块中的strptime函数将日期字符串按照指定的格式转换成time.struct_time结构体对象,然后再将这个结构体对象传入mktime函数中得到时间戳。 代码中的strptime函数使用了格式...

    python 时间戳与格式化时间的转化实现代码

    获取系统当前的时间信息 : time.ctime() 是一个str类型的时间字符串,一般比较少用与开发中 如果想获得当前的普通日期字符串,可以简单的用str(datetime.date.today()) 还有就是时间和时间戳之间的相互转化(很常用)...

    python时间与Unix时间戳相互转换方法详解

    在Python编程中,处理时间数据时,我们经常需要将时间字符串与Unix时间戳之间进行转换。Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不包括闰秒。在Python中,`time`模块提供了处理这些转换的...

    字符串转换时间

    6. **时间戳转换**:时间戳是自1970年1月1日以来的秒数,它也可以被转换为可读的日期时间字符串。例如,Python有`time.mktime()`和`datetime.timestamp()`,JavaScript有`Date.getTime()`。 7. **日期时间操作**:...

    Python 时间戳之获取整点凌晨时间戳的操作方法

    方法二是直接利用`datetime.date.today().timetuple()`获取当前日期的时间元组,然后转化为时间戳。 在处理时间比较时,Python的`datetime`模块提供了便利的方法。例如: ```python import datetime # 定义两个...

    python str字符串转uuid实例

    Python的`time`和`datetime`模块提供了将时间戳、字符串和日期时间对象之间互相转换的功能。例如: ```python # 时间转换 time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) # 时间戳转...

    Python时间和字符串转换操作实例分析

    本文实例讲述了Python时间和字符串转换操作。分享给大家供大家参考,具体如下: 例子: #!/usr/bin/python # -*- coding: UTF-8 -*- import time # 格式化成2016-03-20 11:45:39形式 print time.strftime(%Y-%m-%d ...

    Python3日期与时间戳转换的几种方法详解

    日期和时间的相互转换可以利用Python内置模块 time 和 datetime 完成,且有多种方法供我们选择,当然转换时我们可以直接利用当前时间或指定的字符串格式的时间格式。 获取当前时间转换 我们可以利用内置模块 ...

    Python中time模块详解.pdf

    Python 中的 time 模块提供了处理时间相关的功能,包括时间戳、格式化的时间字符串和元组(struct_time)。在 Python 中,时间可以用三种方式表示:时间戳、格式化的时间字符串和元组(struct_time)。 时间戳是从 ...

    Python3.5内置模块之time与datetime模块用法实例分析

    - **`time.ctime([timestamp])`**:将时间戳转换为字符串,格式为"Wed Dec 11 16:20:47 2019"。 **示例代码**: ```python import time print(time.time()) # 获取时间戳 time.sleep(2) # 睡眠2秒 print(time....

    基于python获取本地时间并转换时间戳和日期格式

    4. `change_to_stamp`:字符串形式的时间转回的时间戳(应与`now_stamp`相同) 5. `change_to_time`:时间戳转回的日期字符串(应与`now_`相同) 了解这些基本的转换方法后,我们可以在处理日期和时间戳时更加...

    python 根据时间来生成唯一的字符串方法

    在这个例子中,我们生成了一个包含五个随机数字(1到10之间)的字符串,并将其附加到时间戳字符串后面,极大地降低了重复的可能性。 值得注意的是,尽管上述方法在大多数情况下都能满足唯一性的需求,但在高并发...

    python--time模块和datetime模块.docx

    - **`time.ctime([seconds])`**:将一个时间戳转化为时间字符串,默认是当前时间。如果提供了时间戳,则将该时间戳转换为字符串形式。 - **`time.gmtime([seconds])`**:将一个时间戳转化为格林威治时间的struct_...

    python 时间比较,很全面

    - `struct_time`对象:`gmtime()`, `localtime()`, 和 `mktime()` 函数用于将时间戳与结构化时间之间进行转换。 2. **datetime模块**: - `datetime`类:包含日期和时间信息的对象,如`datetime.now()`获取当前...

    Python基础学习之时间转换函数用法详解

    python的时间格式分为多种,几种格式之间的转换方法时常是我们遇到的而且是经常忘记的点,python不像php,时间字符串和datetime是一起的,只需要strtotime和date函数就可以相互转化。虽然网上已经有很多python时间...

    PYTHON的TIME模块使用.pdf

    时间处理在 Python 中的实现 Python 的时间处理模块 time 是 Python 中与时间处理...time 模块提供了多种方式来处理时间,包括时间戳、struct_time 和格式化的时间字符串。开发者可以根据需要选择合适的时间处理方式。

    python正常时间和unix时间戳相互转换的方法

    在这个例子中,`datetime_to_timestamp`函数接收一个时间字符串,使用`strptime`函数将其解析为`time.struct_time`对象,然后通过`mktime`函数将其转换为Unix时间戳。 2. **Unix时间戳到正常时间的转换** 反过来...

Global site tag (gtag.js) - Google Analytics