自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你還在用 time.time()?獲取當前時間,這才是正確姿勢!

開發(fā)
獲取當前時間,不止 time.time() 一種寫法,真正實用的工具類應該能靈活應對不同格式,方便人讀,也方便機器處理!

日志記錄、數(shù)據(jù)命名、時間戳生成……幾乎所有 Python 項目都繞不開時間處理。你知道嗎?Python 提供了豐富的時間工具,可以讓你輕松獲取當前時間,還能靈活轉(zhuǎn)換各種格式!

場景舉例

在開發(fā)中你是否遇到過這些需求?

  • 獲取當前時間,格式化為 2025-04-13 21:33:12?
  • 只要日期 2025-04-13,不要時分秒?
  • 文件名中要帶當前時間戳,如 report_20250413_213312.txt?
  • 需要一個毫秒級的 Unix 時間戳?

今天我們就來封裝一個 通用的日期時間工具類,一次性搞定以上所有需求!

工具函數(shù)封裝

from datetime import datetime
import time

def get_now(format_type: str = "datetime") -> str:
    """
    獲取當前時間的多種格式
    :param format_type: 支持 'datetime' | 'date' | 'time' | 'timestamp' | 'filename'
    :return: 格式化后的時間字符串
    """
    now = datetime.now()
    
    if format_type == "datetime":
        return now.strftime("%Y-%m-%d %H:%M:%S")
    elif format_type == "date":
        return now.strftime("%Y-%m-%d")
    elif format_type == "time":
        return now.strftime("%H:%M:%S")
    elif format_type == "timestamp":
        return str(int(time.time() * 1000))  # 毫秒級時間戳
    elif format_type == "filename":
        return now.strftime("%Y%m%d_%H%M%S")  # 文件名用下劃線分隔
    else:
        raise ValueError("不支持的 format_type 類型")

使用示例

print(get_now("datetime"))   # 2025-04-13 21:33:12
print(get_now("date"))       # 2025-04-13
print(get_now("time"))       # 21:33:12
print(get_now("timestamp"))  # 1713028392000
print(get_now("filename"))   # 20250413_213312

輸出效果一覽

模式類型

輸出樣例

應用場景

datetime

2025-04-13 21:33:12

日志記錄、數(shù)據(jù)庫插入

date

2025-04-13

日期展示、統(tǒng)計分組

time

21:33:12

報警時間、運行耗時記錄

timestamp

1713028392000

唯一ID生成、緩存Key、排序標識

filename

20250413_213312

文件命名、數(shù)據(jù)導出

小貼士:時間戳轉(zhuǎn)換為日期

有時候你拿到的是一個時間戳,比如從數(shù)據(jù)庫或接口返回:

def timestamp_to_datetime(ts: int) -> str:
    return datetime.fromtimestamp(ts / 1000).strftime("%Y-%m-%d %H:%M:%S")

print(timestamp_to_datetime(1713028392000))  # ? 2025-04-13 21:33:12

拓展:設置時區(qū)(UTC、北京時間)

Python 默認是本地時區(qū)。如果你在處理服務器端時間、或與其他國家用戶交互,可以結(jié)合 pytz 實現(xiàn)時區(qū)控制。

import pytz

def get_beijing_time():
    tz = pytz.timezone('Asia/Shanghai')
    now = datetime.now(tz)
    return now.strftime("%Y-%m-%d %H:%M:%S")

總結(jié)一句話

獲取當前時間,不止 time.time() 一種寫法,真正實用的工具類應該能靈活應對不同格式,方便人讀,也方便機器處理!

責任編輯:趙寧寧 來源: Ssoul肥魚
相關(guān)推薦

2024-09-25 08:22:06

2019-01-02 10:49:54

Tomcat內(nèi)存HotSpot VM

2021-11-05 10:36:19

性能優(yōu)化實踐

2020-08-05 07:27:54

SQL優(yōu)化分類

2017-06-12 16:17:07

2020-06-28 16:28:24

Windows 10WindowsU盤

2018-07-30 11:21:30

華為云

2019-06-27 17:18:02

Java日志編程語言

2025-01-10 06:30:00

2021-05-26 05:33:30

5G網(wǎng)絡運營商

2021-05-21 13:10:17

kill -9微服務Java

2024-09-09 11:11:45

2021-10-14 18:15:38

BeanUtils對象生成器

2019-12-04 18:45:00

華為Mate X

2012-07-19 10:03:32

2021-11-25 07:43:56

CIOIT董事會

2024-11-12 16:28:34

2021-12-15 07:24:56

SocketTCPUDP

2021-11-10 16:03:42

Pyecharts Python可視化

2020-03-04 14:05:35

戴爾
點贊
收藏

51CTO技術(shù)棧公眾號