前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3 常用的时间工具学习笔记

python3 常用的时间工具学习笔记

作者头像
wencheng
发布2020-07-17 14:21:19
5120
发布2020-07-17 14:21:19
举报
文章被收录于专栏:python 自动化测试

前言

今天给大家分享日常开发过程中常用的一些常用的时间工具,希望对大家有帮助。

时间工具总结直接上代码

代码语言:javascript
复制
import time
import datetime
import unittest

from dtlib.dtlog import dlog

default_time_str_fmt = '%Y-%m-%d %H:%M:%S'
ver_tag = '%Y.%m.%d.%H.%M.%S'


# 默认的时间串格式

def get_current_time_string():
    """
    获取年月日 ,时分秒格式字符串
    :return:
    """
    return datetime.datetime.now().strftime(default_time_str_fmt)
    # return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))


def get_time_tag():
    """
    返回一个自动生成的版本号的信息
    :return:
    """
    return datetime.datetime.now().strftime(ver_tag)


def get_current_utc_time_string():
    utc_time = get_current_utc_time()

    return utc_time.strftime(default_time_str_fmt)


def get_time_zone():
    """
    获取系统时区, gmt-current_utc,中国是 -8.0
    :return: 
    """
    timezone = time.timezone / 3600
    return timezone


def get_midnight_datetime():
    """
    获取半夜的时间
    :return: 
    """
    now = time.time()
    midnight = now - (now % 86400) + time.timezone
    mid_datetime = datetime.datetime.fromtimestamp(midnight)
    return mid_datetime


def get_utc_midnight_datetime():
    """
    获取当前utc的半夜时间,因为
    1. mongodb中都是没有时区信息,按照utf0来存储
    2. python获取本地时间,带时区信息
    3. python和mongodb做时间
    ?:插数据时,mongodb会去掉python的时区信息,直接当成utc时间。读数据时,python读出的也是utc0时区。
    ?:做数据查询的时候,则带有utc8的时区信息,所以和数据库中的数据做对比时,提前了8个时区
    解决方案:全部用UTC0的时间做查询
    :return: 
    """
    now = time.time()
    midnight = now - (now % 86400)
    mid_datetime = datetime.datetime.fromtimestamp(midnight)
    return mid_datetime


def get_current_time():
    """
    获取前时区的时间
    :return: 
    """
    return datetime.datetime.now()


def get_current_utc_time():
    """
    获取当前的utc0时间
    :return:
    """
    return datetime.datetime.utcnow()


def covert_default_time_str(dt_time):
    """
    时间转成默认的字符格式
    :param dt_time:
    :type datetime.datetime
    :return:
    """
    return dt_time.strftime(default_time_str_fmt)


def convert_default_str_to_dt_time(default_time_str):
    """
    将默认的字符时间转化为datetime时间对象
    :param default_time_str:
    :return:转化后的时间
    :rtype:datetime.datetime
    """
    if default_time_str is not None:
        dt_time = datetime.datetime.strptime(default_time_str, default_time_str_fmt)
        return dt_time
    else:
        return None


class MyTest(unittest.TestCase):
    def setUp(self):
        pass

    def test_get_current_time_string(self):
        print('current_time:"', get_current_time_string())
        print('current_utc_time:"', get_current_utc_time_string())
        print('machine timezone:', get_time_zone())     
        print('current_midnight_time:', get_midnight_datetime().strftime(default_time_str_fmt))
        print('get_utc_midnight_datetime:', get_utc_midnight_datetime().strftime(default_time_str_fmt))

    def test_get_time_tag(self):
        dlog.debug(get_time_tag())


if __name__ == '__main__':
    pass

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试 To share 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 时间工具总结直接上代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档