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

Delphi 格式化輸出函數詳解(二):FormatDateTime 日期時間格式化完全指南

     編輯:Delphi

前言

FormatDateTime 是 Delphi 專門用於 TDateTime 類型格式化的標準函數,格式字串支援年月日、時分秒、毫秒、星期、時代等豐富指令。本文通過 40+ 實例系統梳理各指令效果與組合技巧。

函數原型

function FormatDateTime(const Format: string; DateTime: TDateTime): string;

核心格式指令速查表

指令含義示例 (2007-12-19 00:47:16.576)
c短日期+短時間 (系統預設)2007-12-18 23:56:05
d日 (1-31, 不補 0)19
dd日 (01-31, 雙位)19
ddd星期縮寫 (本地化)星期三
dddd星期全寫 (本地化)星期三
ddddd短日期格式2007-12-19
dddddd長日期格式2007年12月19日
e年 (1 位, 如 7)7
ee年 (2 位, 如 07)07
eee / eeee年 (4 位, 如 2007)2007
m月 (1-12, 不補 0)12
mm月 (01-12, 雙位)12
mmm / mmmm月全寫 (本地化, 如 十二月)十二月
y / yy / yyy / yyyy年 (同 e 系列)07 / 07 / 2007 / 2007
t短時間格式0:21
tt長時間格式0:22:13
ampm上午/下午 (本地化)上午
h / hh時 (12/24 制視系統設置)9 / 09
n / nn分58 / 58
s / ss秒6 / 06
z / zz / zzz毫秒 (1/2/3 位)24 / 524 / 524

分隔符與字面量嵌入

  • 預設分隔符 -,/ 等效於 -。
  • 強制使用特定字符作為分隔符:用雙引號包裹,如 'yy"/"mm"/"dd' 輸出 07/12/19。
  • 嵌入任意字面量:'當前時間是: 'yyyy-m-d h:n:s:zz 輸出 當前時間是: 2007-12-19 0:47:16:576。

實例演示(節選)

var s: string;
begin
  s := FormatDateTime('c', Now);                    {短日期時間}
  s := FormatDateTime('ddddd', Now);                {短日期}
  s := FormatDateTime('dddddd', Now);               {長日期}
  s := FormatDateTime('yyyymmdd', Now);             {20071219 緊湊格式}
  s := FormatDateTime('hh:nn:ss', Now);             {00:47:16 標準時間}
  s := FormatDateTime('"Year "yyyy', Now);          {Year 2007 嵌入字面量}
  s := FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz', Now); {ISO 8601 風格含毫秒}
  ShowMessage(s);
end;

本地化與 FormatSettings

所有「本地化」指令(ddd/dddd/mmm/mmmm/ampm/t/tt)輸出取決於全域 FormatSettings 或傳入的 TFormatSettings 記錄。多線程/多語言環境建議顯式構建 TFormatSettings 傳入重載版本:

var FS: TFormatSettings;
begin
  FS := TFormatSettings.Create('zh-CN'); {或 'en-US'}
  s := FormatDateTime('yyyy年mm月dd日', Now, FS);
end;

常見陷阱

  • 單字母指令需隔離:'d m y' 會被解析為三個指令,若需字面量 d 需用 '"d"'"m"'"y'"。
  • m 在日期上下文為月,在時間上下文為分;FormatDateTime 根據位置自動判斷,但混合格式字串中易混淆,建議使用 mm/nn 明確區分。
  • 時代指令:e 系列用於日曆時代(如日本和曆),公曆下等同於 y 系列。

總結

FormatDateTime 指令系統完整覆蓋日期時間顯示的所有維度,靈活的分隔符與字面量嵌入機制使其能生成任意人類可讀格式,配合 TFormatSettings 完美支援多語言本地化。

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