Python 当前时间(复制用)

本文介绍如何使用Python进行日期和时间的格式化操作,包括获取当前日期时间、计算昨天的日期、转换时间戳以及使用时间元组等。适用于需要处理日期时间数据的Python开发者。

1、导入模块

import time, datetime

2、字符串格式

2.1、今天【年月日】

# yyyy-mm-dd(可写入MySQL)
ymd = time.strftime('%Y-%m-%d')
print(ymd)
打印结果
2018-06-26

2.2、现在【时分秒】

# HH:MM:SS(可写入MySQL)
hms = time.strftime('%H:%M:%S')
print(hms)
打印结果
20:02:43

3、datetime.date和datetime.datetime

3.1、现在

a = datetime.datetime.now()
print(a, type(a))
打印结果
2020-02-16 18:45:43.389460
<class 'datetime.datetime'>
2020-02-16 18:45:43

3.2、今天

today = datetime.date.today()
print(today)
print(type(today))
print(today.strftime('%Y-%m-%d'))
打印结果
2020-02-16
<class 'datetime.date'>
2020-02-16

3.3、昨天

yesterday = datetime.date.today() - datetime.timedelta(days=1)

4、时间戳(timestamp)

4.1、秒数

second = int(time.time())
打印结果
1613377918

4.2、毫秒数

millisecond = int(time.time() * 1000)
打印结果
1613377918016

5、时间元组

import time
t = time.localtime()
print(t)
print(type(t))

打印结果

time.struct_time(tm_year=2021, tm_mon=10, tm_mday=19, tm_hour=10, tm_min=49, tm_sec=2, tm_wday=1, tm_yday=292, tm_isdst=0)
<class 'time.struct_time'>
<think>好的,用户现在想了解如何用Python的datetime模块生成当前时间的字符串。之前他们问了关于文件存在时写入数据的问题,我给出了详细的代码示例和说明。现在他们可能在进行数据处理或日志记录,需要时间戳来标记文件或记录。 首先,我需要确定用户的需求是什么。生成当前时间字符串可能有多种格式要求,比如ISO标准、自定义格式,或者带有时区的时间。用户可能只是需要基本的用法,但作为回答,最好覆盖常见的情况,以便他们可以根据需要选择。 接下来,我应该回忆datetime模块的基本用法。datetime模块中的datetime类可以获取当前时间,然后使用strftime方法格式化。时区处理可能需要pytz库或者Python 3.9+的zoneinfo模块。用户可能不知道这些细节,所以需要简单说明。 然后,考虑用户可能的场景。如果是日志文件,通常使用简单的日期时间格式;如果是跨时区的应用,可能需要带时区的信息。同时,用户可能需要将时间转换为字符串后写入文件,比如在文件名中加入时间戳,或者在数据记录中添加时间列。 我需要确保回答结构清晰,分点说明不同的方法,比如基本用法、自定义格式、ISO格式、时区处理等。同时给出代码示例,这样用户可以直接复制使用。此外,注意事项部分也很重要,比如strftime的格式字符、时区处理的重要性,以及性能方面的考虑,避免在循环中频繁创建datetime对象。 还要检查是否有遗漏的情况,比如用户可能需要毫秒级别的精度,或者不同的日期分隔符。在示例中展示不同的格式,如年月日时分秒的各种排列组合,以及使用f-string来格式化,这样用户有更多选择。 最后,确保语言简洁明了,符合中文表达习惯,避免术语混淆。可能需要提醒用户注意平台差异,比如Windows和Linux在某些格式字符上的不同表现,但一般来说,使用标准格式字符可以避免这类问题。 总结步骤: 1. 引入datetime模块。 2. 获取当前时间。 3. 使用strftime格式化。 4. 提供常见格式示例。 5. 提及时区处理。 6. 注意事项和额外建议。 这样用户能够快速找到所需的信息,并根据实际情况调整代码。</think>以下是使用Python标准库`datetime`模块生成当前时间字符串的完整方法说明,包含多种常用格式: --- ### 核心方法:`datetime.now()` + `strftime()` ```python from datetime import datetime # 获取当前时间对象 now = datetime.now() # 转换为自定义格式字符串 time_str = now.strftime("%Y-%m-%d %H:%M:%S") print(time_str) # 输出示例:2024-01-21 14:35:29 ``` --- ### 一、常用格式模板 | 格式需求 | 格式字符串 | 示例输出 | |------------------|---------------------------|----------------------| | 标准日期时间 | `%Y-%m-%d %H:%M:%S` | 2024-01-21 14:35:29 | | 紧凑格式 | `%Y%m%d%H%M%S` | 20240121143529 | | 带毫秒的时间 | `%Y-%m-%d %H:%M:%S.%f` | 2024-01-21 14:35:29.123456 | | 12小时制时间 | `%Y-%m-%d %I:%M:%S %p` | 2024-01-21 02:35:29 PM | | 中文日期格式 | `%Y年%m月%d日 %H时%M分%S秒` | 2024年01月21日 14时35分29秒 | | 文件名安全格式 | `%Y-%m-%dT%H-%M-%S` | 2024-01-21T14-35-29 | --- ### 二、快捷方法 #### 1. ISO标准格式 ```python iso_str = datetime.now().isoformat() # 输出:2024-01-21T14:35:29.123456(含微秒) # 去除微秒: iso_short = datetime.now().replace(microsecond=0).isoformat() ``` #### 2. 使用f-string(Python 3.7+) ```python print(f"{datetime.now():%Y/%m/%d %H:%M}") # 输出:2024/01/21 14:35 ``` --- ### 三、带时区的时间Python 3.9+) ```python from datetime import datetime, timezone # UTC时间 utc_time = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S %Z") # 输出:2024-01-21 06:35:29 UTC # 本地时区(需安装pytz或使用zoneinfo) from zoneinfo import ZoneInfo bj_time = datetime.now(ZoneInfo("Asia/Shanghai")).strftime("%Y-%m-%d %H:%M:%S %Z") # 输出:2024-01-21 14:35:29 CST ``` --- ### 四、注意事项 1. **格式符号对照**: - `%Y`:4位年份(2024) - `%m`:两位月份(01-12) - `%d`:两位日期(01-31) - `%H`:24小时制小时(00-23) - `%M`:分钟(00-59) - `%S`:秒(00-59) - `%f`:微秒(000000-999999) 2. **时区处理**: - 推荐使用Python 3.9+内置的`zoneinfo`模块 - 旧版Python可使用`pytz`库 3. **性能优化**: ```python # 高频调用时建议复用datetime对象 current_time = datetime.now print(current_time().strftime(...)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值