2010年2月10日星期三

.Net日期格式化字符

下表列出了每一种标准模式的标准格式字符以及可以进行设置以修改标准模式的关联 DateTimeFormatInfo 属性。格式字符区分大小写;例如,“g”和“G”所代表的模式稍有不同。

格式字符关联属性/说明
dShortDatePattern
DLongDatePattern
f完整日期和时间(长日期和短时间)
FFullDateTimePattern(长日期和长时间)
g常规(短日期和短时间)
G常规(短日期和长时间)
m、MMonthDayPattern
r、RRFC1123Pattern
s使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
tShortTimePattern
TLongTimePattern
uUniversalSortableDateTimePattern 用于显示通用时间的格式
U使用通用时间的完整日期和时间(长日期和长时间)
y、YYearMonthPattern

下表列出了可被合并以构造自定义模式的模式。这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”。如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。

格式模式说明
d、%d月中的某一天。一位数的日期没有前导零。如果该格式模式没有与其他格式模式组合,则指定“%d”。
dd月中的某一天。一位数的日期有一个前导零。
ddd周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd周中某天的完整名称,在 DayNames 中定义。
M、%M月份数字。一位数的月份没有前导零。如果该格式模式没有与其他格式模式组合,则指定“%M”。
MM月份数字。一位数的月份有一个前导零。
MMM月份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM月份的完整名称,在 MonthNames 中定义。
y、%y不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。如果该格式模式没有与其他格式模式组合,则指定“%y”。
yy不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy包括纪元的四位数的年份。
gg时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h、%h12 小时制的小时。一位数的小时数没有前导零。如果该格式模式没有与其他格式模式组合,则指定“%h”。
hh12 小时制的小时。一位数的小时数有前导零。
H、%H24 小时制的小时。一位数的小时数没有前导零。如果该格式模式没有与其他格式模式组合,则指定“%H”。
HH24 小时制的小时。一位数的小时数有前导零。
m、%m分钟。一位数的分钟数没有前导零。如果该格式模式没有与其他格式模式组合,则指定“%m”。
mm分钟。一位数的分钟数有一个前导零。
s、%s秒。一位数的秒数没有前导零。如果该格式模式没有与其他格式模式组合,则指定“%s”。
ss秒。一位数的秒数有一个前导零。
f、%f秒的小数精度为一位。其余数字被截断。如果该格式模式没有与其他格式模式组合,则指定“%f”。
ff秒的小数精度为两位。其余数字被截断。
fff秒的小数精度为三位。其余数字被截断。
ffff秒的小数精度为四位。其余数字被截断。
fffff秒的小数精度为五位。其余数字被截断。
ffffff秒的小数精度为六位。其余数字被截断。
fffffff秒的小数精度为七位。其余数字被截断。
F、%F显示秒的小数部分的最高有效数字。如果该数字为零,则不显示任何内容。如果该格式模式没有与其他格式模式组合,则指定“%F”。
FF显示秒的小数部分的两个最高有效数字。但是,不显示尾随的零(两个零数字)。
FFF显示秒的小数部分的三个最高有效数字。但是,不显示尾随的零(三个零数字)。
FFFF显示秒的小数部分的四个最高有效数字。但是,不显示尾随的零(四个零数字)。
FFFFF显示秒的小数部分的五个最高有效数字。但是,不显示尾随的零(五个零数字)。
FFFFFF显示秒的小数部分的六个最高有效数字。但是,不显示尾随的零(六个零数字)。
FFFFFFF显示秒的小数部分的七个最高有效数字。但是,不显示尾随的零(七个零数字)。
t、%t在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。如果该格式模式没有与其他格式模式组合,则指定“%t”。
tt在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。
z、%z时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。如果该格式模式没有与其他格式模式组合,则指定“%z”。
zz时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
zzz完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
:在 TimeSeparator 中定义的默认时间分隔符。
/在 DateSeparator 中定义的默认日期分隔符。
% c其中 c 是格式模式(如果单独使用)。也就是说,若要单独使用格式模式“d”、“f”、“F”、“h”、“m”、“s”、“t”、“y”、“z”、“H”或“M”,请指定“%d”、“%f”、“%F”、“%h”、“%m”、“%s”、“%t”、“%y”、“%z”、“%H”或“%M”。

如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
c其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\”。


只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。自定义模式的长度至少为两个字符;例如,

  • DateTime.ToString( "d" ) 返回 DateTime 值;“d”是标准短日期模式。

  • DateTime.ToString( "%d" ) 返回月中的某天;“%d”是自定义模式。

  • DateTime.ToString( "d " ) 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。
发表评论