Python中的datetime库

1. datetime

datetime是Python中用于处理日期和时间的类,它包含在datetime模块中。使用datetime类,我们可以创建表示特定日期和时间的对象,以及进行日期和时间的计算和操作。

from datetime import datetime, timedelta

# 获取当前日期和时间
current_datetime = datetime.now()
print("当前日期和时间:", current_datetime)

# 创建一个特定的日期和时间对象
specific_datetime = datetime(2023, 11, 27, 12, 30, 0)
print("特定的日期和时间:", specific_datetime)

# 提取日期和时间的各个部分
print("年份:", specific_datetime.year)
print("月份:", specific_datetime.month)
print("日期:", specific_datetime.day)
print("小时:", specific_datetime.hour)
print("分钟:", specific_datetime.minute)
print("秒:", specific_datetime.second)
2.strftime是Python中用于将日期和时间格式化为字符串的方法。它可以将datetime对象中的日期和时间按指定的格式转换为字符串。
from datetime import datetime

# 获取当前日期和时间
current_datetime = datetime.now()

# 将日期和时间格式化为字符串
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print("格式化后的日期和时间:", formatted_datetime)

# 提取日期和时间的各个部分并进行格式化
formatted_year = current_datetime.strftime("%Y")
formatted_month = current_datetime.strftime("%m")
formatted_day = current_datetime.strftime("%d")
formatted_hour = current_datetime.strftime("%H")
formatted_minute = current_datetime.strftime("%M")
formatted_second = current_datetime.strftime("%S")
print("格式化后的年份:", formatted_year)
print("格式化后的月份:", formatted_month)
print("格式化后的日期:", formatted_day)
print("格式化后的小时:", formatted_hour)
print("格式化后的分钟:", formatted_minute)
print("格式化后的秒数:", formatted_second)

以上代码会输出类似以下的结果:

格式化后的日期和时间: 2023-11-27 02:18:55
格式化后的年份: 2023
格式化后的月份: 11
格式化后的日期: 27
格式化后的小时: 02
格式化后的分钟: 18
格式化后的秒数: 55

通过使用strftime,我们可以将datetime对象中的日期和时间按照指定的格式转换为字符串,从而满足特定的需求。在格式化字符串中,可以使用各种占位符来表示不同的日期和时间部分,如%Y表示四位数的年份,%m表示两位数的月份,%d表示两位数的日期,%H表示24小时制的小时,%M表示分钟,%S表示秒等等。具体的占位符可以根据需要进行组合使用。

2. timedelta

timedelta是Python中的一个类,用于表示时间间隔。它可以用来进行日期和时间的计算和操作。

在Python中,可以使用datetime模块来创建timedelta对象,并对其进行各种操作。

from datetime import datetime, timedelta

# 创建一个timedelta对象,表示1天的时间间隔
one_day = timedelta(days=1)

# 创建一个timedelta对象,表示2小时的时间间隔
two_hours = timedelta(hours=2)

# 获取当前时间
now = datetime.now()

# 计算两天后的日期
two_days_later = now + 2 * one_day

# 计算3小时前的时间
three_hours_ago = now - 3 * two_hours

# 计算两个日期之间的时间间隔
time_diff = two_days_later - three_hours_ago

# 输出结果
print("两天后的日期:", two_days_later)
print("三小时前的时间:", three_hours_ago)
print("时间间隔:", time_diff)

输出结果:

两天后的日期: 2023-11-29 02:16:40.000000
三小时前的时间: 2023-11-26 23:16:40.000000
时间间隔: 0:05:00

对日期和时间进行加减运算

one_day = timedelta(days=1)
one_week_later = current_datetime + timedelta(weeks=1)
one_day_ago = current_datetime - one_day
print("一周后的日期:", one_week_later)
print("一天前的日期:", one_day_ago)

工作中有需要根据用例编写自动化脚本
在这里插入图片描述

QUERY_TAG_LIST_8 = ["BYTE_AUTO_1","INT_AUTO_1","UINT_AUTO_1", "REAL_AUTO_1",
                    "BYTE_MAN_1","INT_MAN_1","UINT_MAN_1","REAL_MAN_1"]
now = datetime.now()  # 获取当前时间
endtime = now.replace(minute=0, second=0, microsecond=0)  # 将分钟、秒钟和微秒都设置为零
starttime = endtime-timedelta(days=1)
end_time = endtime.strftime("%Y-%m-%d %H:%M:%S,%f")   # 格式化字符串,格式为"2023-7-14 20:00:02,000000"
start_time = starttime.strftime("%Y-%m-%d %H:%M:%S,%f") 

# 采样查询--8个位号(4个秒变)前1天整点历史查询,频率:1小时一次
while start_time < end_time:
    data11 = clt.C_Sample_Query_by_Count(
        ip=test_ip,
        tagName=QUERY_TAG_LIST_8,
        isReverse=1,
        dataCount=1200,
        beginTime=start_time,
        endTime=end_time
    )
    print(data11)
    time.sleep(3600)
    start_time += timedelta(hours=1)
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值