zoukankan      html  css  js  c++  java
  • time、datetime、random模块

    time模块

    time模块一般用于不同时间格式的转换,在使用前用import time导入。在python中,通常有这几种方式来表示时间:

    1.时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。返回浮点型

    import time
    timestamp = time.time()
    print(timestamp,type(timestamp))
    
    1560149134.940318 <class 'float'>
    

    2.格式化时间:表示的是普通的字符串格式的时间。

    format_time = time.strftime('%Y-%m-%d %X')
    print(format_time,type(format_time))
    
    2019-06-10 14:48:30 <class 'str'>
    

    3.结构化时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

    print(time.localtime())    # 本地时区的结构化时间,处于东八区,比格林尼治时间早8小时
    print(time.gmtime())    # 格林尼治的结构化时间
    
    time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=14, tm_min=54, tm_sec=56, tm_wday=0, tm_yday=161, tm_isdst=0)
    time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=6, tm_min=54, tm_sec=56, tm_wday=0, tm_yday=161, tm_isdst=0)
    

    4.不同格式时间的转换

    # 结构化时间转换为格式化时间格式(strftime)
    struct_time = time.localtime()    
    format_time = time.strftime("%Y-%m-%d %X", struct_time)
    print(format_time)
    
    2019-06-10 15:03:01
    
     # 结构化时间转换为时间戳格式(mktime)
    timestamp = time.mktime(struct_time)
    print(timestamp)
    
    1560150332.0
    
    # 时间戳格式转换为结构化时间(localtime/gmtime)
    timestamp = time.time()
    struct_time = time.localtime(timestamp)
    print(struct_time)
    
    time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=15, tm_min=7, tm_sec=56, tm_wday=0, tm_yday=161, tm_isdst=0)
    
    # 格式化时间转换为结构化时间(strptime)
    struct_time = time.strptime('2019-6-10 15:00:00','%Y-%m-%d %X')
    print(struct_time)
    
    time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=15, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=161, tm_isdst=-1)
    

    5.time.sleep(n):睡n秒,可用来暂停几秒

    datetime模块

    一般用于时间的加减

    1.datetime.datetime.now()返回当前时间

    import datetime
    now_time = datetime.datetime.now()
    print(now_time, type(now_time))
    
    2019-06-10 15:27:15.639005 <class 'datetime.datetime'>
    

    若要获取年月日,可以通过切分的方式获取,先要转换成字符串的格式。如获取2019-06-10

    print(str(now_time).split()[0])
    
    2019-06-10
    
    

    2.时间的加减操作:不能指定月、年来加减

    print(now_time + datetime.timedelta(3))    # 默认为天数,加三天
    print(now_time + datetime.timedelta(-3))    # 减三天
    print(now_time - datetime.timedelta(3))    # 减三天
    print(now_time + datetime.timedelta(hours=1))    # 加1小时
    print(now_time + datetime.timedelta(minutes=30))    # 加30分钟
    print(now_time + datetime.timedelta(hours=5, minutes=21))
    
    
    2019-06-13 15:16:18.804198
    2019-06-07 15:16:18.804198
    2019-06-07 15:16:18.804198
    2019-06-10 16:16:18.804198
    2019-06-10 15:46:18.804198
    2019-06-10 20:37:18.804198
    
    

    3.时间替换:相当于在当前时间基础上生成一个指定时间,不会改变原来的时间

    now_time = datetime.datetime.now()
    print(now_time.replace(year=2012, month=12, day=20))    
    print(now_time)
    
    
    2012-12-20 15:26:34.608643
    2019-06-10 15:26:34.608643
    
    

    random模块

    一般用来生成随机数

    1.生成大于0小于1的小数

    import random
    print(random.random())
    
    
    0.058421228800103364
    
    

    2.生成大于等于m,小于等于n的整数(m<=n)

    print(random.randint(1,3))
    
    
    2
    
    

    3.生成大于等于m,小于n的整数(m<n)

    print(random.randrange(1,3))
    
    
    1
    
    

    4.生成大于m,小于n的小数(m<n)

    print(random.uniform(1,3))
    
    
    2.0484929224471413
    
    

    5.获取列表中任意一个元素

    lis = [1, 'a', [2,3,4],'bc']
    print(random.choice(lis))
    
    
    [2, 3, 4]
    
    

    6.获取列表中n个元素组合(sample([list],n))

    lis = [1, 'a', [2,3,4],'bc']
    print(random.sample(lis,2))
    
    
    [1, [2, 3, 4]]
    
    

    7.将列表内的顺序打乱

    lis = [1, 'a', [2,3,4],'bc']
    random.shuffle(lis)
    print(lis)
    
    
    [[2, 3, 4], 'bc', 1, 'a']
    
    
  • 相关阅读:
    【BZOJ】2157: 旅游
    ValidateUtil常用验证工具类,如手机、密码、邮箱等
    Java时间格式转换大全
    springboot 使用redis
    java 判断Map集合中包含指定的键名,则返回true,否则返回false。
    Springboot 项目中引入WebSocket后,单元测试出现错误
    springboot 项目中在普通类中调用dao层的mapper 出现空指针异常
    Springboot 使用 webSocket
    微信小程序需求IIS服务器配置https关于SSL,TLS的综合解决方案
    Spring Boot使用阿里云证书启用HTTPS
  • 原文地址:https://www.cnblogs.com/863652104kai/p/10998527.html
Copyright © 2011-2022 走看看