python中的时间time、datetime、str和时间戳

# coding=utf-8
import datetime
import time

print ("格式参数:")
print (" %a  星期几的简写")
print (" %A  星期几的全称")
print (" %b  月分的简写")
print (" %B  月份的全称")
print (" %c  标准的日期的时间串")
print (" %C  年份的后两位数字")
print (" %d  十进制表示的每月的第几天")
print (" %D  月/天/年")
print (" %e  在两字符域中,十进制表示的每月的第几天")
print (" %F  年-月-日")
print (" %g  年份的后两位数字,使用基于周的年")
print (" %G  年分,使用基于周的年")
print (" %h  简写的月份名")
print (" %H  24小时制的小时")
print (" %I  12小时制的小时")
print (" %j  十进制表示的每年的第几天")
print (" %m  十进制表示的月份")
print (" %M  十时制表示的分钟数")
print (" %n  新行符")
print (" %p  本地的AM或PM的等价显示")
print (" %r  12小时的时间")
print (" %R  显示小时和分钟:hh:mm")
print (" %S  十进制的秒数")
print (" %t  水平制表符")
print (" %T  显示时分秒:hh:mm:ss")
print (" %u  每周的第几天,星期一为第一天 (值从0到6,星期一为0)")
print (" %U  第年的第几周,把星期日做为第一天(值从0到53)")
print (" %V  每年的第几周,使用基于周的年")
print (" %w  十进制表示的星期几(值从0到6,星期天为0)")
print (" %W  每年的第几周,把星期一做为第一天(值从0到53)")
print (" %x  标准的日期串")
print (" %X  标准的时间串")
print (" %y  不带世纪的十进制年份(值从0到99)")
print (" %Y  带世纪部分的十制年份")
print (" %z,%Z   时区名称,如果不能得到时区名称则返回空字符。")
print (" %%  百分号")

print ("----------------------------------------------------------")
print ("python里使time模块来获取当前的时间")


print ("24小时格式:" + time.strftime("%H:%M:%S"))
print ("12小时格式:" + time.strftime("%I:%M:%S"))
print ("今日的日期:" + time.strftime("%d/%m/%Y"))

print ("----------------------------------------------------------")

print ("使用datetime模块来获取当前的日期和时间")

i = datetime.datetime.now()
print ("当前的日期和时间是 %s" % i)
print ("ISO格式的日期和时间是 %s" % i.isoformat() )
print ("当前的年份是 %s" %i.year)
print ("当前的月份是 %s" %i.month)
print ("当前的日期是  %s" %i.day)
print ("dd/mm/yyyy 格式是  %s/%s/%s" % (i.day, i.month, i.year) )
print ("当前小时是 %s" %i.hour)
print ("当前分钟是 %s" %i.minute)
print ("当前秒是  %s" %i.second)

常用方法

    import datetime
    import time

    # 日期时间字符串
    st = "2020-11-23 16:10:10"
    # 当前日期时间
    dt = datetime.datetime.now()
    # 当前时间戳
    sp = time.time()

    # 1.把datetime转成字符串
    def datetime_toString(dt):
        print("1.把datetime转成字符串: ", dt.strftime("%Y-%m-%d %H:%M:%S"))

    # 2.把字符串转成datetime
    def string_toDatetime(st):
        print("2.把字符串转成datetime: ", datetime.datetime.strptime(st, "%Y-%m-%d %H:%M:%S"))

    # 3.把字符串转成时间戳形式
    def string_toTimestamp(st):
        print("3.把字符串转成时间戳形式:", time.mktime(time.strptime(st, "%Y-%m-%d %H:%M:%S")))

    # 4.把时间戳转成字符串形式
    def timestamp_toString(sp):
        print("4.把时间戳转成字符串形式: ", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(sp)))


    # 5.把datetime类型转为时间戳形式
    def datetime_toTimestamp(dt):
        print("5.把datetime类型转为时间戳形式:", time.mktime(dt.timetuple()))


    # 1.把datetime转成字符串
    datetime_toString(dt)
    # 2.把字符串转成datetime
    string_toDatetime(st)
    # 3.把字符串转成时间戳形式
    string_toTimestamp(st)
    # 4.把时间戳转成字符串形式
    timestamp_toString(sp)
    # 5.把datetime类型转外时间戳形式
    datetime_toTimestamp(dt)

    '''
    1.把datetime转成字符串:  2021-01-13 00:06:19
    2.把字符串转成datetime:  2017-11-23 16:10:10
    3.把字符串转成时间戳形式: 1511424610.0
    4.把时间戳转成字符串形式:  2021-01-13 00:06:19
    5.把datetime类型转外时间戳形式: 1610467579.0
    '''
image.png

日期在python中存在time,datetime,时间戳,string四种形式转化 。
时间戳:timestamp,以秒作为单位,在time模块中其所能表述的日期范围被限定在 1970 - 2038 之间。在python当中不做处理获得的时间戳为float类型,整数位为10位,而在JavaScript中的时间戳为13位整数。

python中

JavaScript中

time,datetime两个模块,datetime比time的使用更方便一些,datetime不能直接生成时间戳。
string:这里的string就是可视化的时间格式。可以自定义也可以使用默认。

"""
    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 当前时区的名称  # 乱码
    %% %号本身
"""

time模块

image.png
   time()  -- 返回时间戳
   sleep() -- 延迟运行单位为s
   gmtime() -- 转换时间戳为时间元组(时间元组)
   localtime() -- 转换时间戳为本地时间对象
   asctime() -- 将时间对象转换为字符串
   ctime() -- 将使劲按戳转换为字符串
   mktime() -- 将本地时间转换为时间戳
   strftime() -- 将时间对象转换为规范性字符串  

(1)当前时间戳
# 1538271871.226226
time.time()

(2)时间戳 → 时间元组,默认为当前时间
# time.struct_time(tm_year=2018, tm_mon=9, tm_mday=3, tm_hour=9, tm_min=4, tm_sec=1, tm_wday=6, tm_yday=246, tm_isdst=0)
time.asctime(time.localtime())
time.localtime(1538271871.226226)

(3)时间戳 → 可视化时间
# time.ctime(时间戳),默认为当前时间
time.ctime(1538271871.226226)

(4)时间元组 → 时间戳
# 1568276124.0
# time.mktime((2018, 9, 30, 9, 44, 31, 6, 273, 0))
time.mktime(time.localtime())


(5)时间元组 → 可视化时间
# time.asctime(时间元组),默认为当前时间
time.asctime()
time.asctime((2018, 9, 30, 9, 44, 31, 6, 273, 0))


# (6)时间元组 → 可视化时间(可修改时间格式)
# time.strftime(要转换成的格式,时间元组)
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())


# (7)可视化时间(可修改时间格式) → 时间元祖
# time.strptime(时间字符串,时间格式)
# time.strptime('2018-9-30 11:32:23', '%Y-%m-%d %H:%M:%S')

datetime模块

datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1.

datetime模块定义了5个类,分别是

  • datetime.date --表示日期的类。常用的属性有year,month,day
  • datetime.time ---表示时间的类。常用的属性有hour,minute,second,microsecond
  • datetime.datetime --表示日期时间
  • datetime.timedalta --表示时间间隔,即两个时间点之间的长度
  • datetime.tzinfo:时区的相关信息

常用的方法

 print(datetime.datetime.max)         #datetime最大值  
 
 print(datetime.datetime.min)         #datetime最小值  
 
 print(datetime.datetime.resolution)   #datetime最小单位  
 
 print(datetime.datetime.today())     #返回一个表示当前本地时间  
 
 print(datetime.datetime.fromtimestamp(time.time()))#根据给定的时间戮,返回一个datetime对象  
 
 print(datetime.datetime.now().year)   #取时间对象的年  
 
 print(datetime.datetime.now().month)   #取时间对象的月  
 
 print(datetime.datetime.now().day)    #取时间对象的日  
 
 print(datetime.datetime.now().replace(2010,6,12))#生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性  
 
 print(datetime.datetime.now().timetuple())  #返回给定时间的时间元组/对象  
 
 print(datetime.datetime.now().weekday())  #返回weekday,从0开始  
 
 print(datetime.datetime.now().isoweekday())  #返回weekday,从1开始  
 
 print(datetime.datetime.now().ctime())    #返回给定时间的字符串格式  
 
 print(datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M"))#将字符串转换成日期格式  
 
 print(datetime.datetime.now().time())   #取给定日期时间的时间  
 
 print(datetime.datetime.now() + datetime.timedelta(days=-5))#获取5日前时间  

每个类的具体方法

datetime.date   --表示日期的类。常用的属性有year,month,day
datetime.time   ---表示时间的类。床用的属性有hour,minute,second,microsecond
datetime.datetime  --表示日期时间
datetime.timedalta --表示时间间隔,即两个时间点之间的长度

     .date类
     date类表示日期,构造函数如下:
     datetime.date(year,month,day);
         year(1-9999)
         month(1-12)
         day(1-31)
     date.today()--返回一个表示当前本地日期的date对象
     date.fromtimestamp(timestamp) -- 根据给定的时间戳,返回一个date对象
     date.year() -- 取给定时间的年
     date.month() -- 取时间对象的月
     date.day() -- 取给定时间的日
         date.replace()  -- 生成一个新的日期对象,用参数指定的年,月, 日代替原有对象中的属性
         date.timetuple() -- 返回日期对应的time.struct_time对象
         date.weekday() -- 返回week,Monday==0...Sunday == 6
         date.isoweekday() -- 返回weekday,Monday == 1...Sunday == 7
         date.ctime()  -- 返回给定时间的字符串格式  
    print(datetime.date.today().year)  -- 取时间对象的年
    print(datetime.date.today().month) --取时间对象的月
    print(datetime.date.today().day)  --取时间对象的日
    print(datetime.date.today().replace(2010,6,12))  --生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性
    print(datetime.date.today().timetuple()) 返回给定时间的时间元组/对象
    print(datetime.date.today().weekday())  -- 返回weekday,从0开始
    print(datetime.date.today().ctime)  --返回给定时间的字符串格格式  
 
    .tiem类
    time类表示时间,由时,分,秒以及微秒组成
        time.min()  --最小表示时间
        time.max()  --最大表示时间
        time.resolution()  -- 微秒
    案例:
        最大时间
        print(datetime.time.max)
        最小时间
        print(datetime.time.min)
        时间最小单位,微秒
        print(datetime.time.resolution)  

        
    ·datetime类
     datetime是date与time的结合体,包括date与time的所有信息
         datetime.max()  --最大值
         datetime.min()  --最小值
         datetime.resolution --datetime最小单位
         datetime.today()  -- 返回一个表示当前本地时间
         datetime.fromtimestamp()  --根据给定的时间戳,返回一个datetime对象
         datetime.year() --取年
         datetime.month() --取月
         datetime.day() -- 取日期
         datetim.replace() - 替换时间
         datetime.strptime()  --将字符串转换成日期格式
         datetime.time() -- 取给定日期时间的时间  

参考:time和datetime时间戳---python

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容