pythom模块datetime

一、datetime模块常用方法

1. 导入模块

import datetime

2. 获取当前日期和时间

  • 获取当前日期和时间:
    now = datetime.datetime.now()
    print(now)  # 例如:2024-08-18 14:35:10.123456
    
  • 获取当前日期:
    today = datetime.date.today()
    print(today)  # 例如:2024-08-18
    
  • 获取当前时间:
    current_time = datetime.datetime.now().time()
    print(current_time)  # 例如:14:35:10.123456
    

3. 创建特定日期和时间

  • 创建特定日期:
    date = datetime.date(2024, 8, 18)
    print(date)  # 2024-08-18
    
  • 创建特定时间:
    time = datetime.time(14, 30, 0)
    print(time)  # 14:30:00
    
  • 创建特定日期和时间:
    dt = datetime.datetime(2024, 8, 18, 14, 30, 0)
    print(dt)  # 2024-08-18 14:30:00
    

4. 日期运算

  • 日期加减:
    from datetime import timedelta
    
    today = datetime.date.today()
    yesterday = today - timedelta(days=1)
    tomorrow = today + timedelta(days=1)
    
    print(yesterday)  # 昨天的日期
    print(tomorrow)   # 明天的日期
    
  • 计算日期差:
    date1 = datetime.date(2024, 8, 18)
    date2 = datetime.date(2023, 8, 18)
    delta = date1 - date2
    print(delta.days)  # 两日期之间的天数差
    
  • 创建 timedelta 对象:
    可以通过传递时间参数来创建 timedelta对象,常用的参数包括 days, seconds, microseconds, milliseconds, minutes, hours, 和 weeks
from datetime import timedelta

delta = timedelta(days=5, hours=3, minutes=30)
print(delta)  # 输出: 5 days, 3:30:00

timedelta 对象包含以下属性:

  • days: 天数
  • seconds: 秒数
  • microseconds: 微秒数
  • total_seconds: 总秒数

5. 格式化日期和时间

  • datetime 对象格式化为字符串:
    now = datetime.datetime.now()
    formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
    print(formatted_date)  # 例如:2024-08-18 14:35:10
    
  • 将字符串解析为 datetime 对象:
    date_str = "2024-08-18 14:30:00"
    dt = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
    print(dt)  # 2024-08-18 14:30:00
    

6. 时区处理

  • 获取当前时间并设置时区:
    import pytz
    
    timezone = pytz.timezone('Asia/Shanghai')
    dt_with_tz = datetime.datetime.now(timezone)
    print(dt_with_tz)
    
  • datetime 对象转换为不同的时区:
    timezone_ny = pytz.timezone('America/New_York')
    dt_ny = dt_with_tz.astimezone(timezone_ny)
    print(dt_ny)
    

7. 获取指定时间的时间戳

dt = datetime.datetime(2024, 8, 18, 14, 30, 0)
timestamp = dt.timestamp()
print(timestamp)  # 生成一个浮点数时间戳

8. 从时间戳生成 datetime 对象

timestamp = 1726681800.0
dt = datetime.datetime.fromtimestamp(timestamp)
print(dt)  # 例如:2024-08-18 14:30:00

二、常用函数

1. 13位时间戳转换成Y/m/d H:M:S格式

import datetime

def timestamp_to_datetime(timestamp, format="%Y/%m/%d %H:%M:%S"):
  timestamp = int(timestamp) / 1000  # 将毫秒转换为秒
  dt = datetime.datetime.fromtimestamp(timestamp) # 这里的dt其实是一个datetime格式: <class 'datetime.datetime'>
  return dt.strftime(format)

# 测试代码
timestamp = 1678886400000
formatted_time = timestamp_to_datetime(timestamp)
print(formatted_time)  # 输出:2023/03/15 16:00:00

2. Y/m/d H:M:S格式转换成13位时间戳

import datetime

def datetime_to_timestamp(datetime_str, format="%Y/%m/%d %H:%M:%S"):
  dt = datetime.datetime.strptime(datetime_str, format) # 这里的dt其实是一个datetime格式: <class 'datetime.datetime'>
  timestamp = dt.timestamp() * 1000  # 将秒转换为毫秒
  return int(timestamp)

# 测试代码
datetime_str = "2023/03/15 16:00:00"
timestamp = datetime_to_timestamp(datetime_str)
print(timestamp)  # 输出:1678886400000

datetime.datetime.strptime() 方法用于将字符串解析为 datetime 对象。它接受两个参数:

  • date_string: 要解析的字符串。
  • format: 字符串的格式。

该方法返回一个 datetime 对象,表示解析后的日期和时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值