zoukankan      html  css  js  c++  java
  • python学习5--生成日期/生日

    前言

    python接口自动化添加员工信息时,需要填写生日,批量添加员工,如何随机生成生日呢?

    python提供了一个time和calendar模块可以用于格式化日期和时间。

    一、了解python3 日期和时间的基础知识

    1.1 时间戳,time.time() #1597902084.742635

     1.2 时间元组 格式:time.localtime(时间戳 或 空)、(年、月、日、小时、分钟、秒、一周第几日、一年第几日、夏令时)、time.strptime(时间字符串,时间格式字符串)

      很多python函数用一个元组装起来的9组数字处理时间 

      时间元组:time.localtime(time.time())   

            time.localtime()  #time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=2, tm_sec=44, tm_wday=3, tm_yday=233, tm_isdst=0)

           a=(2020,8,20,11,25,38,0,0,0) #自定义 9组数字

           time.strptime("Thu Aug 20 11:42:27 2020","%a %b %d %H:%M:%S %Y")

           time.strptime("2020-08-20 11:25:38","%Y-%m-%d %H:%M:%S")

    1.3 格式化时间 格式:time.asctime(时间元组)

        time.asctime(a))

        time.asctime(time.localtime())     #Thu Aug 20 13:41:24 2020     

    1.4 格式化日期  格式:time.strftime(日期形式字符串,时间元组)

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

           time.strftime("%Y-%m-%d %H:%M:%S",a)  #2020-08-20 13:41:24

           time.strftime("%a %b %d %H:%M:%S %Y",a)  #Thu Aug 20 13:41:24 2020    

    1.5 格式字符串转换为时间戳   格式:time.mktime(time.strptime(字符串,日期格式字符串)     

        a="Thu Aug 20 11:42:27 2020"
        print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
        b="2020-08-20 11:25:38"
        print(time.mktime(time.strptime(b,"%Y-%m-%d %H:%M:%S")))
    import time
    print("时间戳:{}".format(time.time())) #当前时间戳
    #时间元组
    print("==时间元组==")
    print(time.localtime(time.time())) #当前时间元组
    print(time.localtime())
    a=(2020,8,20,11,25,38,0,0,0)#自定义时间元组
    print(time.strptime("Thu Aug 20 11:42:27 2020","%a %b %d %H:%M:%S %Y"))#格式化时间转元组
    print(time.strptime("2020-08-20 11:25:38","%Y-%m-%d %H:%M:%S"))#格式化日期转元组
    #格式化的时间 #Mon Aug 20 11:25:38 2020
    print("==格式化时间==")
    print(time.asctime(a))
    print(time.asctime(time.localtime(time.time())))
    
    #格式化日期
    #格式化成 2016-01-01 11:20:30形式
    print("==格式化日期==")
    print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
    print(time.strftime("%Y-%m-%d %H:%M:%S",a))
    #格式化成 2016-01-01 形式
    print(time.strftime('%Y-%m-%d',a))
    #格式化成Sat Mar 20 11:20:20 2016形式
    print(time.strftime("%a %b %d %H:%M:%S %Y",time.localtime()))
    print(time.strftime("%a %b %d %H:%M:%S %Y",a))
    #格式字符串转换成时间戳
    aa="Thu Aug 20 11:42:27 2020"
    print(time.mktime(time.strptime(aa,"%a %b %d %H:%M:%S %Y")))
    bb="2020-08-20 11:25:38"
    print(time.mktime(time.strptime(bb,"%Y-%m-%d %H:%M:%S")))
    print(time.strptime(bb,"%Y-%m-%d %H:%M:%S"))#时间元组
    #将时间元组转成时间戳
    print(time.mktime(a))    

      运行结果:

    时间戳:1597906614.8230116
    ==时间元组==
    time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=56, tm_sec=54, tm_wday=3, tm_yday=233, tm_isdst=0)
    time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=56, tm_sec=54, tm_wday=3, tm_yday=233, tm_isdst=0)
    time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=11, tm_min=42, tm_sec=27, tm_wday=3, tm_yday=233, tm_isdst=-1)
    time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=11, tm_min=25, tm_sec=38, tm_wday=3, tm_yday=233, tm_isdst=-1)
    ==格式化时间==
    Mon Aug 20 11:25:38 2020
    Thu Aug 20 14:56:54 2020
    ==格式化日期==
    2020-08-20 14:56:54
    2020-08-20 11:25:38
    2020-08-20
    Thu Aug 20 14:56:54 2020
    Mon Aug 20 11:25:38 2020
    1597894947.0
    1597893938.0
    time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=11, tm_min=25, tm_sec=38, tm_wday=3, tm_yday=233, tm_isdst=-1)
    1597893938.0  

     二、生成日期/生日

    import time
    import random
    #日期转换成元组
    begin=(1971,1,1,0,0,0,0,0,0) #后面3个填写要求范围内的任意数字
    end=(2014,12,31,23,59,59,0,0,0)
    #将时间元组转化成时间戳
    dbegin=time.mktime(begin)
    dend=time.mktime(end)
    #随机取值
    rdate=random.randint(dbegin,dend)
    #时间戳转时间元组,格式化日期
    date=time.strftime("%Y-%m-%d",time.localtime(rdate))
    print(date)
    

     运行结果

    1981-10-08
    

     三、总结

     平时经常使用:

      1.获取时间戳

      2.时间戳转日期

    a=int(time.time())
    print(a)
    print(time.strftime("%Y-%m-%d",time.localtime(a)))
    

      3.time下的方法:

    time.time() #时间戳, 

    time.localtime(时间戳) #时间元组

    time.strptime(字符串,时间格式) #时间元组, 

    (1971,1,1,0,0,0,0,0,0) #时间元组    

    time.strftime(时间格式,时间元组) #日期字符串,

    time.asctime(时间元组) #时间字符串

    time.mktime(时间元组) 时间戳

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    自定义View之实现流行的底部菜单栏中间突起:高仿“咸鱼APP”的底部菜单
    android获取内置和外置SD卡路径
    Android Environment.getExternalStorageDirectory() 获取的是内部存储还是外部存储?
    bitmap过大无法显示图片的问题
    Android Notification的使用
    Android Device Monitor 文件管理的常见问题
    BroadcastReceiver广播相关
    Android Studio 设置代码提示和代码自动补全快捷键--Eclipse 风格
    Android Studio com.android.support:percent 导入错误
    约束布局constraint-layout导入失败的解决方案
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13534782.html
Copyright © 2011-2022 走看看