Python中与NodeJS的Date()函数等效的函数是什么?
Python 中实现 Node.js Date() 等效格式
Python 没有内置直接输出与 Node.js Date() 完全一致格式的函数,但可以通过标准库的 datetime 和 time 模块手动构造出相同的字符串格式。
Node.js Date() 的典型输出格式类似:
Wed Jun 12 2024 15:30:45 GMT+0800 (中国标准时间)
以下是实现该格式的 Python 代码:
from datetime import datetime import time def get_nodejs_style_date(): # 获取当前本地时间 now = datetime.now() # 手动映射星期英文缩写(避免系统 locale 影响) weekday_map = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] weekday = weekday_map[now.weekday()] # 手动映射月份英文缩写 month_map = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] month = month_map[now.month - 1] # 格式化日期、时间部分 day = f"{now.day:02d}" year = now.year time_str = now.strftime("%H:%M:%S") # 计算时区偏移(如 +0800) tz_offset_sec = -time.timezone sign = '+' if tz_offset_sec >= 0 else '-' tz_hours = abs(tz_offset_sec) // 3600 tz_minutes = (abs(tz_offset_sec) % 3600) // 60 tz_offset = f"{sign}{tz_hours:02d}{tz_minutes:02d}" # 获取时区名称(如 中国标准时间) tz_name = time.tzname[0] # 拼接成最终格式 return f"{weekday} {month} {day} {year} {time_str} GMT{tz_offset} ({tz_name})" # 调用示例 print(get_nodejs_style_date())
说明:
- 手动映射星期和月份的英文缩写,是为了避免系统 locale 设置导致的非英文缩写问题;
- 时区偏移通过
time.timezone计算,确保与本地时区一致; - 时区名称直接使用系统返回的本地时区名称,与 Node.js 输出逻辑对齐。
内容的提问来源于stack exchange,提问作者nbe
相关产品推荐
相关产品推荐

