首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# DateTime 日期格式化完全指南:From 轉換到自訂輸出

     編輯:關於C語言

前言

在 C# 開發中,日期時間的處理是基礎卻又容易踩坑的環節。無論是從資料庫讀取字串轉換為 DateTime,還是依據業務需求輸出特定格式,掌握核心 API 能大幅提升開發效率。本文整理實務上最常用的日期格式化技巧,助你快速上手。

核心類別與方法速覽

  • Convert.ToDateTime():將字串轉換為 DateTime 物件,自動辨識常見格式。
  • DateTime.Parse() / ParseExact():解析字串,後者可指定精確格式,適合嚴格驗證。
  • DateTime.ToString(format):依自訂格式字串輸出,支援標準與自訂格式代碼。
  • DateTime.ToShortDateString() / ToLongDateString():快速取得當地文化特性的短/長日期格式。

實戰範例:字串轉換與格式化輸出

// 1. 字串轉 DateTime(自動辨識 "yyyy-MM-dd HH:mm:ss" 等常見格式)
DateTime dt = Convert.ToDateTime("2024-05-07 12:46:53");

// 2. 自訂格式輸出:yyyy-MM-dd HH:mm:ss(24 小時制)
string formatted = dt.ToString("yyyy-MM-dd HH:mm:ss");
// 結果:"2024-05-07 12:46:53"

// 3. 僅取日期部分(短日期格式,依系統文化特性而異)
string shortDate = dt.ToShortDateString();
// 例如:"2024/05/07" 或 "2024-05-07"

// 4. 進階:指定文化特性與格式
string custom = dt.ToString("yyyy年MM月dd日 HH時mm分", new CultureInfo("zh-TW"));
// 結果:"2024年05月07日 12時46分"

常用格式代碼速查表

代碼說明範例輸出
yyyy四位數年份2024
MM兩位數月份 (01-12)05
dd兩位數日期 (01-31)07
HH24 小時制小時 (00-23)12
mm分鐘 (00-59)46
ss秒數 (00-59)53
ttAM/PM 標記PM

資料庫場景實戰:DataReader 取值並格式化

// 假設 dr 為 SqlDataReader,欄位名為 "CreateTime"
if (dr["CreateTime"] != DBNull.Value)
{
    DateTime createTime = Convert.ToDateTime(dr["CreateTime"]);
    // 依需求輸出格式
    string display = createTime.ToString("yyyy/MM/dd HH:mm");
    Console.WriteLine(display);
}

避坑指南

  1. 文化特性陷阱:Convert.ToDateTime 依賴執行緒目前文化特性,跨地區部署時建議改用 DateTime.ParseExact 指定格式。
  2. 空值處理:資料庫欄位可能為 NULL,轉換前務必檢查 DBNull.Value。
  3. 效能考量:高頻呼叫時,重複建立 CultureInfo 物件有開銷,可快取靜態實例。

總結

掌握 Convert.ToDateTime 快速轉換、ToString(format) 彈性輸出,再搭配 ParseExact 嚴格驗證,即可應付 90% 的日期格式化需求。記得根據部署環境設定合適的文化特性,避免格式誤解導致的 Bug。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved