• 技术文章 >后端开发 >Python教程

    Python中数据类型时间的介绍(附代码)

    不言不言2019-03-01 11:24:59转载1500

    本篇文章给大家带来的内容是关于Python中数据类型时间的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    1、什么是时间数据类型

    Python中表示时间类型的数据结构为时间数据类型;

    2.time模块

    import time
    # 获取当前时间的时间戳
    print(time.time())   #输出:1548742426.1698806
    
    # 返回当前时间的元组
    t = time.localtime()
    print(t)
    #输出:time.struct_time(tm_year=2019, tm_mon=1, tm_mday=29, tm_hour=14, tm_min=14, tm_sec=17, tm_wday=1, tm_yday=29, tm_isdst=0)
    
    
    # 将当前时间元组转变为字符串
    print(time.asctime(time.localtime()))  #输出:Tue Jan 29 14:15:51 2019
    
    # # 格式化字符串
    print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))    #输出:2019-01-29 14:16:08
    # # 将字符串转为时间元组
    
    print(time.strptime('2018-11-27 08:08:08', '%Y-%m-%d %H:%M:%S'))  
    #输出:time.struct_time(tm_year=2018, tm_mon=11, tm_mday=27, tm_hour=8, tm_min=8, tm_sec=8, tm_wday=1, tm_yday=331, tm_isdst=-1)
    
    # sleep方法, 会占用cpu时间片
    print(time.sleep(5))   #5秒后输出:None
    
    # 打印日历
    import calendar
    print(calendar.month(2019, 1))   #输出:2019年1月的日历

    时间戳:就是从0时区1970年1月1日0时0分0秒,到所给定日期时间的秒数(浮点型);

    时间戳获取:使用import导入time模块,调用time模块的time方法,得到的时间戳如果不要小数点后面的就是秒,取后面三位小数就是毫秒,再下去三位就是微秒,一般取到毫秒就可以了;

    localtime方法:返回当前时间的元组(包括年月日时分秒等);

    asctime方法:将当前时间元组转变为字符串(欧美国家的时间格式);

    strftime方法:格式化字符串;

    strptime方法:和strftime方法相反,用来将字符串转为时间元组;

    sleep方法:会占用cpu时间片(也就是让整个线程暂停一些时间);

    打印日历:import导入calendar模块,然后调用month方法;

    3.datetime模块

    python中的datetime模块提供了操作日期和时间功能,该模块提供的五种核心对象分别是:datetime(时间日期类型), date(日期类型), time(时间类 型), tzinfo(时区类型), timedelta(时间差类型);

    (1) datetime类型

    from datetime import datetime
    # 1: 构建一个指定日期和时间的datetime对象
    today = datetime(year=2019,month=1,day=29,hour=14,minute=22,second=54)
    print(today)  #输出:2019-01-29 14:22:54
    
    #获取当前日期时间,输出类型为datetime
    now = datetime.now()
    print(now,type(now))  #输出:2019-01-29 14:23:35.408583 <class 'datetime.datetime'>
    
    d_now = datetime.now()
    # datetime类型转字符串
    d_str = d_now.strftime('%Y-%m-%d %H:%M:%S')
    print(d_str,type(d_str))   #输出:2019-01-29 14:26:12 <class 'str'>
    # 字符串转datetime类型
    d_type = datetime.strptime(d_str,'%Y-%m-%d %H:%M:%S')
    print(d_type,type(d_type))  #输出:2019-01-29 14:26:12 <class 'datetime.datetime'>
    
    # 计算时间戳
    timestamp = d_type.timestamp()
    print(timestamp)  #输出:1548743501.0
    
    # 计算时间戳
    timestamp = d_type.timestamp()
    print(timestamp)      #输出:1548743935.0
    
    # 通过时间戳获取datetime对象   
    d_type = datetime.fromtimestamp(1543408827)
    print(d_type, type(d_type))  #输出:2018-11-28 20:40:27 <class 'datetime.datetime'>

    (2) date类型

    from datetime import date
    data_today = date(year=2018, month=11, day=29)
    print(data_today)  #输出:2018-11-29

    (3) time类型

    from datetime import time
    now_time = time(hour=8, minute=30, second=10)
    print(now_time, type(now_time))  #输出:20:30:10 <class 'datetime.time'>

    (4) timedelta类型

    from datetime import datetime, timedelta
    # 时间间隔可以通过相减得到
    now = datetime.now()
    before_datatime = datetime(year=2018, month=11, day=20, hour=8, minute=20, second=20)
    delta = now - before_datatime
    print(delta, type(delta))   #输出:70 days, 6:22:37.340041 <class 'datetime.timedelta'>
    
    # 可以初始化时间间隔
    delta_days = timedelta(days=7)
    print(delta_days, type(delta_days))  #输出:7 days, 0:00:00 <class 'datetime.timedelta'>
    
    # 可以通过时间间隔得到将来的时间 
    future_datetime = now + delta_days
    print(future_datetime)    #输出:2019-02-05 14:43:54.582315

    (5)tzinfo类型

    from datetime import datetime
    import pytz
    utc_tz = pytz.timezone('UTC')
    print(pytz.country_timezones('cn'))  # 显示中国时区的城市   #输出:['Asia/Shanghai', 'Asia/Urumqi']
    print(pytz.country_timezones('us'))  # 显示美国时区的城市
    # #输出:['America/New_York', 'America/Detroit', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Indiana/Indianapolis', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Vevay', 'America/Chicago', 'America/Indiana/Tell_City', 'America/Indiana/Knox', 'America/Menominee', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/North_Dakota/Beulah', 'America/Denver', 'America/Boise', 'America/Phoenix', 'America/Los_Angeles', 'America/Anchorage', 'America/Juneau', 'America/Sitka', 'America/Metlakatla', 'America/Yakutat', 'America/Nome', 'America/Adak', 'Pacific/Honolulu']
    
    # # 获取时区
    china_tz = pytz.timezone('Asia/Shanghai')
    america_tz = pytz.timezone('America/New_York')
    # # 获取城市本地时间
    china_local_time = datetime.now(china_tz) # 东八区
    america_local_time = datetime.now(america_tz) # 西五区
    print(china_local_time)   #输出:2019-01-29 14:51:51.252579+08:00
    print(america_local_time)  #输出:2019-01-29 14:51:51.252579+08:00

    以上就是Python中数据类型时间的介绍(附代码)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:python
    上一篇:python如何处理excel数据 下一篇:python使用PyQt5的详细教程(代码示例)
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• (全面)python面试题的经典示例总结• Python文件如何打包成exe文件• 如何实现python冒泡排序算法?• python如何处理excel数据
    1/1

    PHP中文网