自訂日期與時間格式字串 - Microsoft Docs
文章推薦指數: 80 %
DateTime date1 = new DateTime(70, 08, 04); Console.WriteLine(date1.ToString("MM/dd/yyyy g", CultureInfo.InvariantCulture)); // Displays 08/04/ ...
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
語言
閱讀英文
儲存
編輯
共用
Twitter
LinkedIn
Facebook
電子郵件
WeChat
目錄
語言
語言
閱讀英文
儲存
目錄
閱讀英文
儲存
編輯
Twitter
LinkedIn
Facebook
電子郵件
WeChat
目錄
自訂日期與時間格式字串
發行項
11/20/2021
3位參與者
此頁面有所助益嗎?
Yes
No
還有其他意見反應嗎?
系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。
隱私權原則。
送出
謝謝。
本文內容
日期和時間格式字串會定義對DateTime或DateTimeOffset值執行格式化作業後所產生的文字表示。
另外還會定義剖析作業所需日期和時間值的表示,以便成功地將字串轉換成日期和時間。
自訂格式字串是由一個或多個自訂日期和時間格式規範所組成。
任何不是標準日期和時間格式字串的字串都會被解譯為自訂日期和時間格式字串。
提示
您可以下載格式化公用程式,這個.NETCoreWindowsForms應用程式可讓您將格式字串套用至數值或日期和時間值,並顯示結果字串。
提供C#和VisualBasic的原始程式碼。
自訂日期和時間格式字串可以與DateTime和DateTimeOffset值搭配使用。
注意
本文中的某些C#範例會在Try.NET內嵌程式碼執行器和測試區執行。
選取[執行]****按鈕以在互動式視窗中執行範例。
執行程式碼之後,您便可以修改它,並再選取一次[執行]****來執行修改過的程式碼。
修改過的程式碼會在互動式視窗中執行,或是如果編譯失敗的話,互動式視窗會顯示所有C#編譯器錯誤訊息。
Try.NET內嵌程式碼執行器與Playground的當地時區是全球標準時間(UTC)。
這可能會影響示範DateTime、DateTimeOffset與TimeZoneInfo型別與其成員之範例的行為與輸出。
在格式化作業中,自訂日期和時間格式字串可以搭配ToString日期和時間實例的方法或是支援複合格式的方法使用。
以下範例說明這兩種用法。
DateTimethisDate1=newDateTime(2011,6,10);
Console.WriteLine("Todayis"+thisDate1.ToString("MMMMdd,yyyy")+".");
DateTimeOffsetthisDate2=newDateTimeOffset(2011,6,10,15,24,16,
TimeSpan.Zero);
Console.WriteLine("Thecurrentdateandtime:{0:MM/dd/yyH:mm:sszzz}",
thisDate2);
//Theexampledisplaysthefollowingoutput:
//TodayisJune10,2011.
//Thecurrentdateandtime:06/10/1115:24:16+00:00
DimthisDate1AsDate=#6/10/2011#
Console.WriteLine("Todayis"+thisDate1.ToString("MMMMdd,yyyy")+".")
DimthisDate2AsNewDateTimeOffset(2011,6,10,15,24,16,TimeSpan.Zero)
Console.WriteLine("Thecurrentdateandtime:{0:MM/dd/yyH:mm:sszzz}",
thisDate2)
'Theexampledisplaysthefollowingoutput:
'TodayisJune10,2011.
'Thecurrentdateandtime:06/10/1115:24:16+00:00
在剖析作業中,自訂日期和時間格式字串可以搭配DateTime.ParseExact、DateTime.TryParseExact、DateTimeOffset.ParseExact和DateTimeOffset.TryParseExact方法使用。
這些方法需要輸入字串完全符合特定模式,剖析作業才會成功。
下列範例說明呼叫DateTimeOffset.ParseExact(String,String,IFormatProvider)方法來剖析必須包含日、月和兩位數年的日期。
usingSystem;
usingSystem.Globalization;
publicclassExample
{
publicstaticvoidMain()
{
string[]dateValues={"30-12-2011","12-30-2011",
"30-12-11","12-30-11"};
stringpattern="MM-dd-yy";
DateTimeparsedDate;
foreach(vardateValueindateValues){
if(DateTime.TryParseExact(dateValue,pattern,null,
DateTimeStyles.None,outparsedDate))
Console.WriteLine("Converted'{0}'to{1:d}.",
dateValue,parsedDate);
else
Console.WriteLine("Unabletoconvert'{0}'toadateandtime.",
dateValue);
}
}
}
//Theexampledisplaysthefollowingoutput:
//Unabletoconvert'30-12-2011'toadateandtime.
//Unabletoconvert'12-30-2011'toadateandtime.
//Unabletoconvert'30-12-11'toadateandtime.
//Converted'12-30-11'to12/30/2011.
ImportsSystem.Globalization
ModuleExample
PublicSubMain()
DimdateValues()AsString={"30-12-2011","12-30-2011",
"30-12-11","12-30-11"}
DimpatternAsString="MM-dd-yy"
DimparsedDateAsDate
ForEachdateValueAsStringIndateValues
IfDateTime.TryParseExact(dateValue,pattern,Nothing,
DateTimeStyles.None,parsedDate)Then
Console.WriteLine("Converted'{0}'to{1:d}.",
dateValue,parsedDate)
Else
Console.WriteLine("Unabletoconvert'{0}'toadateandtime.",
dateValue)
EndIf
Next
EndSub
EndModule
'Theexampledisplaysthefollowingoutput:
'Unabletoconvert'30-12-2011'toadateandtime.
'Unabletoconvert'12-30-2011'toadateandtime.
'Unabletoconvert'30-12-11'toadateandtime.
'Converted'12-30-11'to12/30/2011.
下表說明自訂日期和時間格式規範,並顯示每個格式規範所產生的結果字串。
根據預設,結果字串會反映en-US文化特性的格式設定慣例。
如果特定格式規範會產生當地語系化的結果字串,則範例也會註明結果字串適用的文化特性。
如需使用自訂日期和時間格式字串的詳細資訊,請參閱注意一節。
格式規範
描述
範例
"d"
月份天數,從1到31。
詳細資訊:"d"自訂格式規範。
2009-06-01T13:45:30->12009-06-15T13:45:30->15
"dd"
月份天數,從01到31。
詳細資訊:"dd"自訂格式規範。
2009-06-01T13:45:30->012009-06-15T13:45:30->15
"ddd"
星期幾的縮寫名稱。
詳細資訊:"ddd"自訂格式規範。
2009-06-15T13:45:30->Mon(en-US)2009-06-15T13:45:30->Пн(ru-RU)2009-06-15T13:45:30->lun.(fr-FR)
"dddd"
星期幾的完整名稱。
詳細資訊:"dddd"自訂格式規範。
2009-06-15T13:45:30->Monday(en-US)2009-06-15T13:45:30->понедельник(ru-RU)2009-06-15T13:45:30->lundi(fr-FR)
"f"
日期和時間值中的十分之一秒。
詳細資訊:"f"自訂格式規範。
2009-06-15T13:45:30.6170000->62009-06-15T13:45:30.05->0
"ff"
日期和時間值中的百分之一秒。
詳細資訊:"ff"自訂格式規範。
2009-06-15T13:45:30.6170000->612009-06-15T13:45:30.0050000->00
"fff"
日期和時間值中的千分之一秒。
詳細資訊:"fff"自訂格式規範。
6/15/200913:45:30.617->6176/15/200913:45:30.0005->000
"ffff"
日期和時間值中的萬分之一秒。
詳細資訊:"ffff"自訂格式規範。
2009-06-15T13:45:30.6175000->61752009-06-15T13:45:30.0000500->0000
"fffff"
日期和時間值中的十萬分之一秒。
詳細資訊:"fffff"自訂格式規範。
2009-06-15T13:45:30.6175400->617546/15/200913:45:30.000005->00000
"ffffff"
日期和時間值中的百萬分之一秒。
詳細資訊:"ffffff"自訂格式規範。
2009-06-15T13:45:30.6175420->6175422009-06-15T13:45:30.0000005->000000
"fffffff"
日期和時間值中的千萬分之一秒。
詳細資訊:"fffffff"自訂格式規範。
2009-06-15T13:45:30.6175425->61754252009-06-15T13:45:30.0001150->0001150
"F"
如果不是零,則為日期和時間值中的十分之一秒。
詳細資訊:"F"自訂格式規範。
2009-06-15T13:45:30.6170000->62009-06-15T13:45:30.0500000->(沒有輸出)
"FF"
如果不是零,則為日期和時間值中的百分之一秒。
詳細資訊:"FF"自訂格式規範。
2009-06-15T13:45:30.6170000->612009-06-15T13:45:30.0050000->(沒有輸出)
"FFF"
如果不是零,則為日期和時間值中的千分之一秒。
詳細資訊:"FFF"自訂格式規範。
2009-06-15T13:45:30.6170000->6172009-06-15T13:45:30.0005000->(沒有輸出)
"FFFF"
如果不是零,則為日期和時間值中的萬分之一秒。
詳細資訊:"FFFF"自訂格式規範。
2009-06-15T13:45:30.5275000->52752009-06-15T13:45:30.0000500->(沒有輸出)
"FFFFF"
如果不是零,則為日期和時間值中的十萬分之一秒。
詳細資訊:"FFFFF"自訂格式規範。
2009-06-15T13:45:30.6175400->617542009-06-15T13:45:30.0000050->(沒有輸出)
"FFFFFF"
如果不是零,則為日期和時間值中的百萬分之一秒。
詳細資訊:"FFFFFF"自訂格式規範。
2009-06-15T13:45:30.6175420->6175422009-06-15T13:45:30.0000005->(沒有輸出)
"FFFFFFF"
如果不是零,則為日期和時間值中的千萬分之一秒。
詳細資訊:"FFFFFFF"自訂格式規範。
2009-06-15T13:45:30.6175425->61754252009-06-15T13:45:30.0001150->000115
"g"、"gg"
週期或紀元。
詳細資訊:"g"或"gg"自訂格式規範。
2009-06-15T13:45:30.6170000->A.D.
"h"
採用12小時制的小時,從1到12。
詳細資訊:"h"自訂格式規範。
2009-06-15T01:45:30->12009-06-15T13:45:30->1
"hh"
採用12小時制的小時,從01到12。
詳細資訊:"hh"自訂格式規範。
2009-06-15T01:45:30->012009-06-15T13:45:30->01
"H"
採用24小時制的小時,從0到23。
詳細資訊:"H"自訂格式規範。
2009-06-15T01:45:30->12009-06-15T13:45:30->13
"HH"
採用24小時制的小時,從00到23。
詳細資訊:"HH"自訂格式規範。
2009-06-15T01:45:30->012009-06-15T13:45:30->13
"K"
時區資訊。
詳細資訊:"K"自訂格式規範。
搭配DateTime值:2009-06-15T13:45:30,KindUnspecified->2009-06-15T13:45:30,KindUtc->Z2009-06-15T13:45:30,KindLocal->-07:00(依據本機電腦設定)搭配DateTimeOffset值:2009-06-15T01:45:30-07:00-->-07:002009-06-15T08:45:30+00:00-->+00:00
"m"
分鐘,從0到59。
詳細資訊:"m"自訂格式規範。
2009-06-15T01:09:30->92009-06-15T13:29:30->29
"mm"
分鐘,從00到59。
詳細資訊:"mm"自訂格式規範。
2009-06-15T01:09:30->092009-06-15T01:45:30->45
"M"
月份,從1到12。
詳細資訊:"M"自訂格式規範。
2009-06-15T13:45:30->6
"MM"
月份,從01到12。
詳細資訊:"MM"自訂格式規範。
2009-06-15T13:45:30->06
"MMM"
月份的縮寫名稱。
詳細資訊:"MMM"自訂格式規範。
2009-06-15T13:45:30->Jun(en-US)2009-06-15T13:45:30->juin(fr-FR)2009-06-15T13:45:30->Jun(zu-ZA)
"MMMM"
月份的完整名稱。
詳細資訊:"MMMM"自訂格式規範。
2009-06-15T13:45:30->June(en-US)2009-06-15T13:45:30->juni(da-DK)2009-06-15T13:45:30->uJuni(zu-ZA)
"s"
秒數,從0到59。
詳細資訊:"s"自訂格式規範。
2009-06-15T13:45:09->9
"ss"
秒數,從00到59。
詳細資訊:"ss"自訂格式規範。
2009-06-15T13:45:09->09
"t"
AM/PM指示項的第一個字元。
詳細資訊:"t"自訂格式規範。
2009-06-15T13:45:30->P(en-US)2009-06-15T13:45:30->午(ja-JP)2009-06-15T13:45:30->(fr-FR)
"tt"
AM/PM指示項。
詳細資訊:"tt"自訂格式規範。
2009-06-15T13:45:30->PM(en-US)2009-06-15T13:45:30->午後(ja-JP)2009-06-15T13:45:30->(fr-FR)
"y"
年份,從0到99。
詳細資訊:"y"自訂格式規範。
0001-01-01T00:00:00->10900-01-01T00:00:00->01900-01-01T00:00:00->02009-06-15T13:45:30->92019-06-15T13:45:30->19
"yy"
年份,從00到99。
詳細資訊:"yy"自訂格式規範。
0001-01-01T00:00:00->010900-01-01T00:00:00->001900-01-01T00:00:00->002019-06-15T13:45:30->19
"yyy"
年份,至少三位數。
詳細資訊:"yyy"自訂格式規範。
0001-01-01T00:00:00->0010900-01-01T00:00:00->9001900-01-01T00:00:00->19002009-06-15T13:45:30->2009
"yyyy"
以四位數表示的年份。
詳細資訊:"yyyy"自訂格式規範。
0001-01-01T00:00:00->00010900-01-01T00:00:00->09001900-01-01T00:00:00->19002009-06-15T13:45:30->2009
"yyyyy"
以五位數表示的年份。
詳細資訊:"yyyyy"自訂格式規範。
0001-01-01T00:00:00->000012009-06-15T13:45:30->02009
"z"
與UTC相差的時數,不加上前置零。
詳細資訊:"z"自訂格式規範。
2009-06-15T13:45:30-07:00->-7
"zz"
與UTC相差的時數,單一位數值會加上前置零。
詳細資訊:"zz"自訂格式規範。
2009-06-15T13:45:30-07:00->-07
"zzz"
與UTC相差的時數和分鐘數。
詳細資訊:"zzz"自訂格式規範。
2009-06-15T13:45:30-07:00->-07:00
":"
時間分隔符號。
詳細資訊:":"自訂格式規範。
2009-06-15T13:45:30->:(en-US)2009-06-15T13:45:30->.(it-IT)2009-06-15T13:45:30->:(ja-JP)
"/"
日期分隔符號。
詳細資訊:"/"自訂格式規範。
2009-06-15T13:45:30->/(en-US)2009-06-15T13:45:30->-(ar-DZ)2009-06-15T13:45:30->.(tr-TR)
"string"'string'
常值字串分隔符號。
詳細資訊︰字元常值。
2009-06-15T13:45:30("arr:"h:mt)->arr:1:45P2009-06-15T13:45:30('arr:'h:mt)->arr:1:45P
%
將下列字元定義為自訂格式規範。
詳細資訊:使用單一自訂格式規範。
2009-06-15T13:45:30(%h)->1
\
逸出字元。
詳細資訊︰字元常值和使用逸出字元。
2009-06-15T13:45:30(h\h)->1h
任意字元
字元會原封不動地複製到結果字串。
詳細資訊︰字元常值。
2009-06-15T01:45:30(arrhh:mmt)->arr01:45A
下列各節提供每個自訂日期和時間格式規範的其他資訊。
除非特別註明,否則每個規範都會產生相同的字串表示,無論是與DateTime值或DateTimeOffset值搭配使用。
Day"d"格式規範
"D"自訂格式規範
"d"自訂格式規範以1到31的數字來表示月份天數。
單一位數的天數會格式化為沒有前置零的數字。
如果單獨使用"d"格式規範,而沒有其他自訂格式規範,則會將它解譯為"d"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在幾個格式字串中加入"d"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15);
Console.WriteLine(date1.ToString("d,M",
CultureInfo.InvariantCulture));
//Displays29,8
Console.WriteLine(date1.ToString("dMMMM",
CultureInfo.CreateSpecificCulture("en-US")));
//Displays29August
Console.WriteLine(date1.ToString("dMMMM",
CultureInfo.CreateSpecificCulture("es-MX")));
//Displays29agosto
Dimdate1AsDate=#08/29/20087:27:15PM#
Console.WriteLine(date1.ToString("d,M",_
CultureInfo.InvariantCulture))
'Displays29,8
Console.WriteLine(date1.ToString("dMMMM",_
CultureInfo.CreateSpecificCulture("en-US")))
'Displays29August
Console.WriteLine(date1.ToString("dMMMM",_
CultureInfo.CreateSpecificCulture("es-MX")))
'Displays29agosto
回到表格
"Dd"自訂格式規範
"dd"自訂格式字串以01到31的數字來表示月份天數。
單一位數的天數會格式化為有前置零的數字。
下列範例會在自訂格式字串中加入"dd"自訂格式規範。
DateTimedate1=newDateTime(2008,1,2,6,30,15);
Console.WriteLine(date1.ToString("dd,MM",
CultureInfo.InvariantCulture));
//02,01
Dimdate1AsDate=#1/2/20086:30:15AM#
Console.WriteLine(date1.ToString("dd,MM",_
CultureInfo.InvariantCulture))
'02,01
回到表格
"Ddd"自訂格式規範
"ddd"自訂格式規範表示星期幾的縮寫名稱。
星期幾的當地語系化縮寫名稱是擷取自目前或指定之文化特性的DateTimeFormatInfo.AbbreviatedDayNames屬性。
下列範例會在自訂格式字串中加入"ddd"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15);
Console.WriteLine(date1.ToString("ddddMMM",
CultureInfo.CreateSpecificCulture("en-US")));
//DisplaysFri29Aug
Console.WriteLine(date1.ToString("ddddMMM",
CultureInfo.CreateSpecificCulture("fr-FR")));
//Displaysven.29août
Dimdate1AsDate=#08/29/20087:27:15PM#
Console.WriteLine(date1.ToString("ddddMMM",_
CultureInfo.CreateSpecificCulture("en-US")))
'DisplaysFri29Aug
Console.WriteLine(date1.ToString("ddddMMM",_
CultureInfo.CreateSpecificCulture("fr-FR")))
'Displaysven.29août
回到表格
"Dddd"自訂格式規範
"dddd"自訂格式規範(加上任意個額外的"d"規範)表示星期幾的完整名稱。
星期幾的當地語系化名稱是擷取自目前或指定之文化特性的DateTimeFormatInfo.DayNames屬性。
下列範例會在自訂格式字串中加入"dddd"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15);
Console.WriteLine(date1.ToString("ddddddMMMM",
CultureInfo.CreateSpecificCulture("en-US")));
//DisplaysFriday29August
Console.WriteLine(date1.ToString("ddddddMMMM",
CultureInfo.CreateSpecificCulture("it-IT")));
//Displaysvenerdì29agosto
Dimdate1AsDate=#08/29/20087:27:15PM#
Console.WriteLine(date1.ToString("ddddddMMMM",_
CultureInfo.CreateSpecificCulture("en-US")))
'DisplaysFriday29August
Console.WriteLine(date1.ToString("ddddddMMMM",_
CultureInfo.CreateSpecificCulture("it-IT")))
'Displaysvenerdì29agosto
回到表格
小寫秒"f"分數規範
"F"自訂格式規範
"f"自訂格式規範表示秒數的一位有效小數位數,也就是說,它表示日期和時間值中的十分之一秒。
如果單獨使用"f"格式規範,而沒有其他格式規範,則會將它解譯為"f"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
當您使用"f"格式規範做為提供給ParseExact、TryParseExact、ParseExact或TryParseExact方法的一部分格式字串時,"f"格式規範的數目表示秒數部分最重要的小數位數,必須存在此小數位數才能成功剖析字串。
下列範例會在自訂格式字串中加入"f"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15,18);
CultureInfoci=CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci));
//Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci));
//Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci));
//Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci));
//Displays07:27:15.018
Dimdate1AsNewDate(2008,8,29,19,27,15,018)
DimciAsCultureInfo=CultureInfo.InvariantCulture
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci))
'Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci))
'Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci))
'Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci))
'Displays07:27:15.018
回到表格
"Ff"自訂格式規範
"ff"自訂格式規範表示秒數的兩位有效小數位數,也就是說,它表示日期和時間值中的百分之一秒。
下列範例會在自訂格式字串中加入"ff"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15,18);
CultureInfoci=CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci));
//Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci));
//Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci));
//Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci));
//Displays07:27:15.018
Dimdate1AsNewDate(2008,8,29,19,27,15,018)
DimciAsCultureInfo=CultureInfo.InvariantCulture
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci))
'Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci))
'Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci))
'Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci))
'Displays07:27:15.018
回到表格
"Fff"自訂格式規範
"fff"自訂格式規範表示秒數的三位有效小數位數,也就是說,它表示日期和時間值中的千分之一秒。
下列範例會在自訂格式字串中加入"fff"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15,18);
CultureInfoci=CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci));
//Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci));
//Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci));
//Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci));
//Displays07:27:15.018
Dimdate1AsNewDate(2008,8,29,19,27,15,018)
DimciAsCultureInfo=CultureInfo.InvariantCulture
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci))
'Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci))
'Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci))
'Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci))
'Displays07:27:15.018
回到表格
"Ffff"自訂格式規範
"ffff"自訂格式規範表示秒數的四位有效小數位數,也就是說,它表示日期和時間值中的萬分之一秒。
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
"Fffff"自訂格式規範
"fffff"自訂格式規範表示秒數的五位有效小數位數,也就是說,它表示日期和時間值中的十萬分之一秒。
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
"Ffffff"自訂格式規範
"ffffff"自訂格式規範表示秒數的六位有效小數位數,也就是說,它表示日期和時間值中的百萬分之一秒。
雖然時間值的秒數部分可以顯示到百萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
"Fffffff"自訂格式規範
"fffffff"自訂格式規範表示秒數的七位有效小數位數,也就是說,它表示日期和時間值中的千萬分之一秒。
雖然時間值的秒數部分可以顯示到千萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
大寫秒"F"分數規範
"F"自訂格式規範
"F"自訂格式規範表示秒數的一位有效小數位數,也就是說,它表示日期和時間值中的十分之一秒。
如果數位為零,則不會顯示任何內容,而且也不會顯示在秒數之後的小數點。
如果單獨使用"F"格式規範,而沒有其他格式規範,則會將它解譯為"F"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
與ParseExact、TryParseExact、ParseExact或TryParseExact方法搭配使用的"F"格式規範數目,表示秒數部分最重要小數位數的上限,要成功剖析字串就不能超過此小數位數。
下列範例會在自訂格式字串中加入"F"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15,18);
CultureInfoci=CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci));
//Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci));
//Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci));
//Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci));
//Displays07:27:15.018
Dimdate1AsNewDate(2008,8,29,19,27,15,018)
DimciAsCultureInfo=CultureInfo.InvariantCulture
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci))
'Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci))
'Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci))
'Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci))
'Displays07:27:15.018
回到表格
"FF"自訂格式規範
"FF"自訂格式規範表示秒數的兩位有效小數位數,也就是說,它表示日期和時間值中的百分之一秒。
不會顯示尾端的零。
如果兩個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示在秒數之後的小數點。
下列範例會在自訂格式字串中加入"FF"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15,18);
CultureInfoci=CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci));
//Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci));
//Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci));
//Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci));
//Displays07:27:15.018
Dimdate1AsNewDate(2008,8,29,19,27,15,018)
DimciAsCultureInfo=CultureInfo.InvariantCulture
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci))
'Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci))
'Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci))
'Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci))
'Displays07:27:15.018
回到表格
"FFF"自訂格式規範
"FFF"自訂格式規範表示秒數的三位有效小數位數,也就是說,它表示日期和時間值中的千分之一秒。
不會顯示尾端的零。
如果三個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示在秒數之後的小數點。
下列範例會在自訂格式字串中加入"FFF"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15,18);
CultureInfoci=CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci));
//Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci));
//Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci));
//Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci));
//Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci));
//Displays07:27:15.018
Dimdate1AsNewDate(2008,8,29,19,27,15,018)
DimciAsCultureInfo=CultureInfo.InvariantCulture
Console.WriteLine(date1.ToString("hh:mm:ss.f",ci))
'Displays07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F",ci))
'Displays07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF",ci))
'Displays07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff",ci))
'Displays07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF",ci))
'Displays07:27:15.018
回到表格
"FFFF"自訂格式規範
"FFFF"自訂格式規範表示秒數的四位有效小數位數,也就是說,它表示日期和時間值中的萬分之一秒。
不會顯示尾端的零。
如果四個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示在秒數之後的小數點。
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
"FFFFF"自訂格式規範
"FFFFF"自訂格式規範表示秒數的五位有效小數位數,也就是說,它表示日期和時間值中的十萬分之一秒。
不會顯示尾端的零。
如果五個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示在秒數之後的小數點。
雖然時間值的秒數部分可以顯示到萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
"FFFFFF"自訂格式規範
"FFFFFF"自訂格式規範表示秒數的六位有效小數位數,也就是說,它表示日期和時間值中的百萬分之一秒。
不會顯示尾端的零。
如果六個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示在秒數之後的小數點。
雖然時間值的秒數部分可以顯示到百萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
"FFFFFFF"自訂格式規範
"FFFFFFF"自訂格式規範表示秒數的七位有效小數位數,也就是說,它表示日期和時間值中的千萬分之一秒。
不會顯示尾端的零。
如果七個有效位數為零,則不會顯示任何專案,在此情況下,也不會顯示在秒數之後的小數點。
雖然時間值的秒數部分可以顯示到千萬分之一秒,但該值可能沒有太大的意義。
日期和時間值的精確度會根據系統時鐘的解析度而定。
在WindowsNT3.5(含)以上版本和WindowsVista作業系統中,時鐘的解析度大約為10-15毫秒。
回到表格
紀元"g"格式規範
"G"或"gg"自訂格式規範
"g"或"gg"自訂格式規範(加上任意個額外的"g"規範)表示時期或時代,例如A.D。
如果要格式化的日期沒有關聯的時期或時代字串,則格式化作業會忽略這個規範。
如果單獨使用"g"格式規範,而沒有其他自訂格式規範,則會將它解譯為"g"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"g"自訂格式規範。
DateTimedate1=newDateTime(70,08,04);
Console.WriteLine(date1.ToString("MM/dd/yyyyg",
CultureInfo.InvariantCulture));
//Displays08/04/0070A.D.
Console.WriteLine(date1.ToString("MM/dd/yyyyg",
CultureInfo.CreateSpecificCulture("fr-FR")));
//Displays08/04/0070ap.J.-C.
Dimdate1AsDate=#08/04/0070#
Console.WriteLine(date1.ToString("MM/dd/yyyyg",_
CultureInfo.InvariantCulture))
'Displays08/04/0070A.D.
Console.WriteLine(date1.ToString("MM/dd/yyyyg",_
CultureInfo.CreateSpecificCulture("fr-FR")))
'Displays08/04/0070ap.J.-C.
回到表格
小寫小時"h"格式規範
"H"自訂格式規範
"h"自訂格式規範以1到12的數字來表示小時,也就是以12小時制來表示小時,從午夜或中午開始計算整點時數。
午夜後的特定小時與下午的相同小時會難以區分。
小時是不進位的,而且單一位數的小時會格式化為沒有前置零的數字。
例如,假設時間為上午或下午5:43,則此自訂格式規範會顯示"5"。
如果單獨使用"h"格式規範,而沒有其他自訂格式規範,則會將它解譯為標準日期和時間格式規範,並擲回FormatException。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"h"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1µ
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1.5µ
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1µ
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1.5µ
回到表格
"Hh"自訂格式規範
"hh"自訂格式規範(加上任意個額外的"h"規範)以01到12的數字來表示小時,也就是以12小時制來表示小時,從午夜或中午開始計算整點時數。
午夜後的特定小時與下午的相同小時會難以區分。
小時是不進位的,而且單一位數的小時會格式化為有前置零的數字。
例如,假設時間為上午或下午5:43,則此格式規範會顯示"05"。
下列範例會在自訂格式字串中加入"hh"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.InvariantCulture));
//Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01du.
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.InvariantCulture));
//Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01.50du.
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.InvariantCulture))
'Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01du.
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.InvariantCulture))
'Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01.50du.
回到表格
大寫小時"H"格式規範
"H"自訂格式規範
"H"自訂格式規範以0到23的數字來表示小時,也就是採用以零為起始的24小時制來表示小時,從午夜開始計算時數。
單一位數的小時會格式化為沒有前置零的數字。
如果單獨使用"H"格式規範,而沒有其他自訂格式規範,則會將它解譯為標準日期和時間格式規範,並擲回FormatException。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"H"自訂格式規範。
DateTimedate1=newDateTime(2008,1,1,6,9,1);
Console.WriteLine(date1.ToString("H:mm:ss",
CultureInfo.InvariantCulture));
//Displays6:09:01
Dimdate1AsDate=#6:09:01AM#
Console.WriteLine(date1.ToString("H:mm:ss",_
CultureInfo.InvariantCulture))
'Displays6:09:01
回到表格
"HH"自訂格式規範
"HH"自訂格式規範(加上任意個額外的"H"規範)以00到23的數字來表示小時,也就是採用以零為起始的24小時制來表示小時,從午夜開始計算時數。
單一位數的小時會格式化為具有前置零的數字。
下列範例會在自訂格式字串中加入"HH"自訂格式規範。
DateTimedate1=newDateTime(2008,1,1,6,9,1);
Console.WriteLine(date1.ToString("HH:mm:ss",
CultureInfo.InvariantCulture));
//Displays06:09:01
Dimdate1AsDate=#6:09:01AM#
Console.WriteLine(date1.ToString("HH:mm:ss",_
CultureInfo.InvariantCulture))
'Displays06:09:01
回到表格
時區"K"格式規範
"K"自訂格式規範
"K"自訂格式規範表示日期和時間值的時區資訊。
與DateTime值搭配使用這個格式規範時,結果字串會由DateTime.Kind屬性的值定義:
若為本地時區(DateTime.Kind的DateTimeKind.Local屬性值),此規範相當於"zzz"規範,所產生的結果字串會包含本地與國際標準時間(UTC)之間的時差,例如"-07:00"。
若為UTC時間(DateTime.Kind的DateTimeKind.Utc屬性值),結果字串會包含"Z"字元來表示UTC日期。
若為未指定時區的時間(DateTime.Kind屬性等於DateTimeKind.Unspecified的時間),結果就相當於String.Empty。
若為DateTimeOffset值,"K"格式規範相當於"zzz"格式規範,所產生的結果字串會包含DateTimeOffset值與UTC之間的時差。
如果單獨使用"K"格式規範,而沒有其他自訂格式規範,則會將它解譯為標準日期和時間格式規範,並擲回FormatException。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會顯示美國太平洋時區中,"K"自訂格式規範與各種DateTime和DateTimeOffset值搭配使用所產生的結果字串。
Console.WriteLine(DateTime.Now.ToString("%K"));
//Displays-07:00
Console.WriteLine(DateTime.UtcNow.ToString("%K"));
//DisplaysZ
Console.WriteLine("'{0}'",
DateTime.SpecifyKind(DateTime.Now,
DateTimeKind.Unspecified).ToString("%K"));
//Displays''
Console.WriteLine(DateTimeOffset.Now.ToString("%K"));
//Displays-07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"));
//Displays+00:00
Console.WriteLine(newDateTimeOffset(2008,5,1,6,30,0,
newTimeSpan(5,0,0)).ToString("%K"));
//Displays+05:00
Console.WriteLine(Date.Now.ToString("%K"))
'Displays-07:00
Console.WriteLine(Date.UtcNow.ToString("%K"))
'DisplaysZ
Console.WriteLine("'{0}'",_
Date.SpecifyKind(Date.Now,_
DateTimeKind.Unspecified)._
ToString("%K"))
'Displays''
Console.WriteLine(DateTimeOffset.Now.ToString("%K"))
'Displays-07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"))
'Displays+00:00
Console.WriteLine(NewDateTimeOffset(2008,5,1,6,30,0,_
NewTimeSpan(5,0,0))._
ToString("%K"))
'Displays+05:00
回到表格
分鐘"m"格式規範
"M"自訂格式規範
"m"自訂格式規範以0到59的數字來表示分鐘。
分鐘表示自上個整點以來已經過的完整分鐘數。
單一位數的分鐘會格式化為沒有前置零的數字。
如果單獨使用"m"格式規範,而沒有其他自訂格式規範,則會將它解譯為"m"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"m"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1µ
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1.5µ
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1µ
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1.5µ
回到表格
"Mm"自訂格式規範
"mm"自訂格式規範(加上任意個額外的"m"規範)以00到59的數字來表示分鐘。
分鐘表示自上個整點以來已經過的完整分鐘數。
單一位數的分鐘會格式化為具有前置零的數字。
下列範例會在自訂格式字串中加入"mm"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.InvariantCulture));
//Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01du.
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.InvariantCulture));
//Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01.50du.
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.InvariantCulture))
'Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01du.
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.InvariantCulture))
'Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01.50du.
回到表格
Month"M"格式規範
"M"自訂格式規範
"M"自訂格式規範以1到12的數字來表示月份(如果是有13個月的行事曆則從1到13)。
單一位數的月份會格式化為沒有前置零的數字。
如果單獨使用"M"格式規範,而沒有其他自訂格式規範,則會將它解譯為"M"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"M"自訂格式規範。
DateTimedate1=newDateTime(2008,8,18);
Console.WriteLine(date1.ToString("(M)MMM,MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
//Displays(8)Aug,August
Console.WriteLine(date1.ToString("(M)MMM,MMMM",
CultureInfo.CreateSpecificCulture("nl-NL")));
//Displays(8)aug,augustus
Console.WriteLine(date1.ToString("(M)MMM,MMMM",
CultureInfo.CreateSpecificCulture("lv-LV")));
//Displays(8)Aug,augusts
Dimdate1AsDate=#8/18/2008#
Console.WriteLine(date1.ToString("(M)MMM,MMMM",_
CultureInfo.CreateSpecificCulture("en-US")))
'Displays(8)Aug,August
Console.WriteLine(date1.ToString("(M)MMM,MMMM",_
CultureInfo.CreateSpecificCulture("nl-NL")))
'Displays(8)aug,augustus
Console.WriteLine(date1.ToString("(M)MMM,MMMM",_
CultureInfo.CreateSpecificCulture("lv-LV")))
'Displays(8)Aug,augusts
回到表格
"MM"自訂格式規範
"MM"自訂格式規範以01到12的數字來表示月份(如果是有13個月的行事曆則從1到13)。
單一位數的月份會格式化為有前置零的數字。
下列範例會在自訂格式字串中加入"MM"自訂格式規範。
DateTimedate1=newDateTime(2008,1,2,6,30,15);
Console.WriteLine(date1.ToString("dd,MM",
CultureInfo.InvariantCulture));
//02,01
Dimdate1AsDate=#1/2/20086:30:15AM#
Console.WriteLine(date1.ToString("dd,MM",_
CultureInfo.InvariantCulture))
'02,01
回到表格
"MMM"自訂格式規範
"MMM"自訂格式規範表示月份的縮寫名稱。
月份的當地語系化縮寫名稱是擷取自目前或指定之文化特性的DateTimeFormatInfo.AbbreviatedMonthNames屬性。
下列範例會在自訂格式字串中加入"MMM"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15);
Console.WriteLine(date1.ToString("ddddMMM",
CultureInfo.CreateSpecificCulture("en-US")));
//DisplaysFri29Aug
Console.WriteLine(date1.ToString("ddddMMM",
CultureInfo.CreateSpecificCulture("fr-FR")));
//Displaysven.29août
Dimdate1AsDate=#08/29/20087:27:15PM#
Console.WriteLine(date1.ToString("ddddMMM",_
CultureInfo.CreateSpecificCulture("en-US")))
'DisplaysFri29Aug
Console.WriteLine(date1.ToString("ddddMMM",_
CultureInfo.CreateSpecificCulture("fr-FR")))
'Displaysven.29août
回到表格
"MMMM"自訂格式規範
"MMMM"自訂格式規範表示月份的完整名稱。
月份的當地語系化名稱是擷取自目前或指定之文化特性的DateTimeFormatInfo.MonthNames屬性。
下列範例會在自訂格式字串中加入"MMMM"自訂格式規範。
DateTimedate1=newDateTime(2008,8,29,19,27,15);
Console.WriteLine(date1.ToString("ddddddMMMM",
CultureInfo.CreateSpecificCulture("en-US")));
//DisplaysFriday29August
Console.WriteLine(date1.ToString("ddddddMMMM",
CultureInfo.CreateSpecificCulture("it-IT")));
//Displaysvenerdì29agosto
Dimdate1AsDate=#08/29/20087:27:15PM#
Console.WriteLine(date1.ToString("ddddddMMMM",_
CultureInfo.CreateSpecificCulture("en-US")))
'DisplaysFriday29August
Console.WriteLine(date1.ToString("ddddddMMMM",_
CultureInfo.CreateSpecificCulture("it-IT")))
'Displaysvenerdì29agosto
回到表格
秒"s"格式規範
"S"自訂格式規範
"s"自訂格式規範以0到59的數字來表示秒數。
結果表示自上個分鐘以來已經過的完整秒數。
單一位數的秒數會格式化為沒有前置零的數字。
如果單獨使用"s"格式規範,而沒有其他自訂格式規範,則會將它解譯為"s"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"s"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1µ
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1.5µ
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1µ
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1.5µ
回到表格
"Ss"自訂格式規範
"ss"自訂格式規範(加上任意個額外的"s"規範)以00到59的數字來表示秒數。
結果表示自上個分鐘以來已經過的完整秒數。
單一位數的秒數會格式化為具有前置零的數字。
下列範例會在自訂格式字串中加入"ss"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.InvariantCulture));
//Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01du.
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.InvariantCulture));
//Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01.50du.
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.InvariantCulture))
'Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01du.
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.InvariantCulture))
'Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01.50du.
回到表格
Meridiem"t"格式規範
"T"自訂格式規範
"t"自訂格式規範表示AM/PM指示項的第一個字元。
適當的當地語系化指示項是擷取自目前或特定文化特性的DateTimeFormatInfo.AMDesignator或DateTimeFormatInfo.PMDesignator屬性。
AM指示項用於從0:00:00(午夜)到11:59:59.999為止的所有時間。
PM指示項用於從12:00:00(中午)到23:59:59.999為止的所有時間。
如果單獨使用"t"格式規範,而沒有其他自訂格式規範,則會將它解譯為"t"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"t"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1µ
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.InvariantCulture));
//Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",
CultureInfo.CreateSpecificCulture("el-GR")));
//Displays6:9:1.5µ
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1µ
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.InvariantCulture))
'Displays6:9:1.5P
Console.WriteLine(date1.ToString("h:m:s.Ft",_
CultureInfo.CreateSpecificCulture("el-GR")))
'Displays6:9:1.5µ
回到表格
"Tt"自訂格式規範
"tt"自訂格式規範(加上任意個額外的"t"規範)表示整個AM/PM指示項。
適當的當地語系化指示項是擷取自目前或特定文化特性的DateTimeFormatInfo.AMDesignator或DateTimeFormatInfo.PMDesignator屬性。
AM指示項用於從0:00:00(午夜)到11:59:59.999為止的所有時間。
PM指示項用於從12:00:00(中午)到23:59:59.999為止的所有時間。
對於需要特別強調AM與PM的語言,請務必使用"tt"規範。
其中一種就是日文,日文的AM和PM指示項的第二個字元(非第一個字元)不同。
下列範例會在自訂格式字串中加入"tt"自訂格式規範。
DateTimedate1;
date1=newDateTime(2008,1,1,18,9,1);
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.InvariantCulture));
//Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01du.
date1=newDateTime(2008,1,1,18,9,1,500);
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.InvariantCulture));
//Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",
CultureInfo.CreateSpecificCulture("hu-HU")));
//Displays06:09:01.50du.
Dimdate1AsDate
date1=#6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.InvariantCulture))
'Displays06:09:01PM
Console.WriteLine(date1.ToString("hh:mm:sstt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01du.
date1=NewDate(2008,1,1,18,9,1,500)
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.InvariantCulture))
'Displays06:09:01.50PM
Console.WriteLine(date1.ToString("hh:mm:ss.fftt",_
CultureInfo.CreateSpecificCulture("hu-HU")))
'Displays06:09:01.50du.
回到表格
Year"y"格式規範
"Y"自訂格式規範
"y"自訂格式規範以一位或兩位數來表示年份。
如果年份超過兩個位數,結果中只會出現兩個低位數字。
如果兩位數年份的第一個數字以零開始(例如2008),則會格式化為沒有前置零的數字。
如果單獨使用"y"格式規範,而沒有其他自訂格式規範,則會將它解譯為"y"標準日期和時間格式規範。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"y"自訂格式規範。
DateTimedate1=newDateTime(1,12,1);
DateTimedate2=newDateTime(2010,1,1);
Console.WriteLine(date1.ToString("%y"));
//Displays1
Console.WriteLine(date1.ToString("yy"));
//Displays01
Console.WriteLine(date1.ToString("yyy"));
//Displays001
Console.WriteLine(date1.ToString("yyyy"));
//Displays0001
Console.WriteLine(date1.ToString("yyyyy"));
//Displays00001
Console.WriteLine(date2.ToString("%y"));
//Displays10
Console.WriteLine(date2.ToString("yy"));
//Displays10
Console.WriteLine(date2.ToString("yyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyyy"));
//Displays02010
Dimdate1AsDate=#12/1/0001#
Dimdate2AsDate=#1/1/2010#
Console.WriteLine(date1.ToString("%y"))
'Displays1
Console.WriteLine(date1.ToString("yy"))
'Displays01
Console.WriteLine(date1.ToString("yyy"))
'Displays001
Console.WriteLine(date1.ToString("yyyy"))
'Displays0001
Console.WriteLine(date1.ToString("yyyyy"))
'Displays00001
Console.WriteLine(date2.ToString("%y"))
'Displays10
Console.WriteLine(date2.ToString("yy"))
'Displays10
Console.WriteLine(date2.ToString("yyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyyy"))
'Displays02010
回到表格
"Yy"自訂格式規範
"yy"自訂格式規範以兩位數來表示年份。
如果年份超過兩個位數,結果中只會出現兩個低位數字。
如果兩位數年份少於兩個有效位數,則會以前置零填補此數字來產生兩位數。
在剖析作業中,使用"yy"自訂格式規範所剖析的兩位數年份,是根據格式提供者現行曆法的Calendar.TwoDigitYearMax屬性進行解譯。
下列範例會使用en-US文化特性的預設西曆(在此案例中為目前的文化特性),剖析具有兩位數年份之日期的字串表示。
接著它會將目前文化特性的CultureInfo物件變更為使用已修改GregorianCalendar屬性的TwoDigitYearMax物件。
usingSystem;
usingSystem.Globalization;
usingSystem.Threading;
publicclassExample
{
publicstaticvoidMain()
{
stringfmt="dd-MMM-yy";
stringvalue="24-Jan-49";
Calendarcal=(Calendar)CultureInfo.CurrentCulture.Calendar.Clone();
Console.WriteLine("TwoDigitYearRange:{0}-{1}",
cal.TwoDigitYearMax-99,cal.TwoDigitYearMax);
Console.WriteLine("{0:d}",DateTime.ParseExact(value,fmt,null));
Console.WriteLine();
cal.TwoDigitYearMax=2099;
CultureInfoculture=(CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.Calendar=cal;
Thread.CurrentThread.CurrentCulture=culture;
Console.WriteLine("TwoDigitYearRange:{0}-{1}",
cal.TwoDigitYearMax-99,cal.TwoDigitYearMax);
Console.WriteLine("{0:d}",DateTime.ParseExact(value,fmt,null));
}
}
//Theexampledisplaysthefollowingoutput:
//TwoDigitYearRange:1930-2029
//1/24/1949
//
//TwoDigitYearRange:2000-2099
//1/24/2049
ImportsSystem.Globalization
ImportsSystem.Threading
ModuleExample
PublicSubMain()
DimfmtAsString="dd-MMM-yy"
DimvalueAsString="24-Jan-49"
DimcalAsCalendar=CType(CultureInfo.CurrentCulture.Calendar.Clone(),Calendar)
Console.WriteLine("TwoDigitYearRange:{0}-{1}",
cal.TwoDigitYearMax-99,cal.TwoDigitYearMax)
Console.WriteLine("{0:d}",DateTime.ParseExact(value,fmt,Nothing))
Console.WriteLine()
cal.TwoDigitYearMax=2099
DimcultureAsCultureInfo=CType(CultureInfo.CurrentCulture.Clone(),CultureInfo)
culture.DateTimeFormat.Calendar=cal
Thread.CurrentThread.CurrentCulture=culture
Console.WriteLine("TwoDigitYearRange:{0}-{1}",
cal.TwoDigitYearMax-99,cal.TwoDigitYearMax)
Console.WriteLine("{0:d}",DateTime.ParseExact(value,fmt,Nothing))
EndSub
EndModule
'Theexampledisplaysthefollowingoutput:
'TwoDigitYearRange:1930-2029
'1/24/1949
'
'TwoDigitYearRange:2000-2099
'1/24/2049
下列範例會在自訂格式字串中加入"yy"自訂格式規範。
DateTimedate1=newDateTime(1,12,1);
DateTimedate2=newDateTime(2010,1,1);
Console.WriteLine(date1.ToString("%y"));
//Displays1
Console.WriteLine(date1.ToString("yy"));
//Displays01
Console.WriteLine(date1.ToString("yyy"));
//Displays001
Console.WriteLine(date1.ToString("yyyy"));
//Displays0001
Console.WriteLine(date1.ToString("yyyyy"));
//Displays00001
Console.WriteLine(date2.ToString("%y"));
//Displays10
Console.WriteLine(date2.ToString("yy"));
//Displays10
Console.WriteLine(date2.ToString("yyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyyy"));
//Displays02010
Dimdate1AsDate=#12/1/0001#
Dimdate2AsDate=#1/1/2010#
Console.WriteLine(date1.ToString("%y"))
'Displays1
Console.WriteLine(date1.ToString("yy"))
'Displays01
Console.WriteLine(date1.ToString("yyy"))
'Displays001
Console.WriteLine(date1.ToString("yyyy"))
'Displays0001
Console.WriteLine(date1.ToString("yyyyy"))
'Displays00001
Console.WriteLine(date2.ToString("%y"))
'Displays10
Console.WriteLine(date2.ToString("yy"))
'Displays10
Console.WriteLine(date2.ToString("yyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyyy"))
'Displays02010
回到表格
"Yyy"自訂格式規範
"yyy"自訂格式規範以最少三位數來表示年份。
如果年份超過三個有效位數,它們會包含在結果字串中。
如果年份少於三個位數,則會以前置零填補此數字來產生三位數。
注意
對於可具有五位數年份的泰國佛教曆法,此格式規範會顯示全部有效位數。
下列範例會在自訂格式字串中加入"yyy"自訂格式規範。
DateTimedate1=newDateTime(1,12,1);
DateTimedate2=newDateTime(2010,1,1);
Console.WriteLine(date1.ToString("%y"));
//Displays1
Console.WriteLine(date1.ToString("yy"));
//Displays01
Console.WriteLine(date1.ToString("yyy"));
//Displays001
Console.WriteLine(date1.ToString("yyyy"));
//Displays0001
Console.WriteLine(date1.ToString("yyyyy"));
//Displays00001
Console.WriteLine(date2.ToString("%y"));
//Displays10
Console.WriteLine(date2.ToString("yy"));
//Displays10
Console.WriteLine(date2.ToString("yyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyyy"));
//Displays02010
Dimdate1AsDate=#12/1/0001#
Dimdate2AsDate=#1/1/2010#
Console.WriteLine(date1.ToString("%y"))
'Displays1
Console.WriteLine(date1.ToString("yy"))
'Displays01
Console.WriteLine(date1.ToString("yyy"))
'Displays001
Console.WriteLine(date1.ToString("yyyy"))
'Displays0001
Console.WriteLine(date1.ToString("yyyyy"))
'Displays00001
Console.WriteLine(date2.ToString("%y"))
'Displays10
Console.WriteLine(date2.ToString("yy"))
'Displays10
Console.WriteLine(date2.ToString("yyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyyy"))
'Displays02010
回到表格
"Yyyy"自訂格式規範
"yyyy"自訂格式規範以最少四位數來表示年份。
如果年份超過四個有效位數,它們會包含在結果字串中。
如果年份少於四個位數,則會以前置零填補此數字,以產生四個位數。
注意
對於可具有五位數年份的泰國佛教曆法,此格式規範會顯示最少四個位數。
下列範例會在自訂格式字串中加入"yyyy"自訂格式規範。
DateTimedate1=newDateTime(1,12,1);
DateTimedate2=newDateTime(2010,1,1);
Console.WriteLine(date1.ToString("%y"));
//Displays1
Console.WriteLine(date1.ToString("yy"));
//Displays01
Console.WriteLine(date1.ToString("yyy"));
//Displays001
Console.WriteLine(date1.ToString("yyyy"));
//Displays0001
Console.WriteLine(date1.ToString("yyyyy"));
//Displays00001
Console.WriteLine(date2.ToString("%y"));
//Displays10
Console.WriteLine(date2.ToString("yy"));
//Displays10
Console.WriteLine(date2.ToString("yyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyyy"));
//Displays02010
Dimdate1AsDate=#12/1/0001#
Dimdate2AsDate=#1/1/2010#
Console.WriteLine(date1.ToString("%y"))
'Displays1
Console.WriteLine(date1.ToString("yy"))
'Displays01
Console.WriteLine(date1.ToString("yyy"))
'Displays001
Console.WriteLine(date1.ToString("yyyy"))
'Displays0001
Console.WriteLine(date1.ToString("yyyyy"))
'Displays00001
Console.WriteLine(date2.ToString("%y"))
'Displays10
Console.WriteLine(date2.ToString("yy"))
'Displays10
Console.WriteLine(date2.ToString("yyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyyy"))
'Displays02010
回到表格
"Yyyyy"自訂格式規範
"yyyyy"自訂格式規範(加上任意個額外的"y"規範)以最少五位數來表示年份。
如果年份超過五個有效位數,它們會包含在結果字串中。
如果年份少於五位數,則會以前置零填補此數字來產生五位數。
如果有更多"y"規範,則會視需要以前置零填補此數字,以產生該"y"規範數目的位數。
下列範例會在自訂格式字串中加入"yyyyy"自訂格式規範。
DateTimedate1=newDateTime(1,12,1);
DateTimedate2=newDateTime(2010,1,1);
Console.WriteLine(date1.ToString("%y"));
//Displays1
Console.WriteLine(date1.ToString("yy"));
//Displays01
Console.WriteLine(date1.ToString("yyy"));
//Displays001
Console.WriteLine(date1.ToString("yyyy"));
//Displays0001
Console.WriteLine(date1.ToString("yyyyy"));
//Displays00001
Console.WriteLine(date2.ToString("%y"));
//Displays10
Console.WriteLine(date2.ToString("yy"));
//Displays10
Console.WriteLine(date2.ToString("yyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyy"));
//Displays2010
Console.WriteLine(date2.ToString("yyyyy"));
//Displays02010
Dimdate1AsDate=#12/1/0001#
Dimdate2AsDate=#1/1/2010#
Console.WriteLine(date1.ToString("%y"))
'Displays1
Console.WriteLine(date1.ToString("yy"))
'Displays01
Console.WriteLine(date1.ToString("yyy"))
'Displays001
Console.WriteLine(date1.ToString("yyyy"))
'Displays0001
Console.WriteLine(date1.ToString("yyyyy"))
'Displays00001
Console.WriteLine(date2.ToString("%y"))
'Displays10
Console.WriteLine(date2.ToString("yy"))
'Displays10
Console.WriteLine(date2.ToString("yyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyy"))
'Displays2010
Console.WriteLine(date2.ToString("yyyyy"))
'Displays02010
回到表格
位移"z"格式規範
"Z"自訂格式規範
搭配DateTime值使用時,"z"自訂格式規範表示本地作業系統時區與國際標準時間(UTC)之間的時差(帶正負號),以小時為單位。
它不會反映執行個體的DateTime.Kind屬性值。
因此,不建議將"z"格式規範搭配DateTime值使用。
搭配DateTimeOffset值使用時,此格式規範表示DateTimeOffset值與UTC之間的時差,以小時為單位。
顯示時差時,一定會有前置正負號。
加號(+)表示早於UTC的時數,減號(-)表示晚於UTC的時數。
單一位數的時差會格式化為沒有前置零的數字。
如果單獨使用"z"格式規範,而沒有其他自訂格式規範,則會將它解譯為標準日期和時間格式規範,並擲回FormatException。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
下列範例會在自訂格式字串中加入"z"自訂格式規範。
DateTimedate1=DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",
date1));
//Displays-7,-07,-07:00
DateTimeOffsetdate2=newDateTimeOffset(2008,8,1,0,0,0,
newTimeSpan(6,0,0));
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",
date2));
//Displays+6,+06,+06:00
Dimdate1AsDate=Date.UtcNow
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",_
date1))
'Displays-7,-07,-07:00
Dimdate2AsNewDateTimeOffset(2008,8,1,0,0,0,_
NewTimespan(6,0,0))
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",_
date2))
'Displays+6,+06,+06:00
回到表格
"Zz"自訂格式規範
搭配DateTime值使用時,"zz"自訂格式規範表示本地作業系統時區與UTC之間的時差(帶正負號),以小時為單位。
它不會反映執行個體的DateTime.Kind屬性值。
因此,不建議將"zz"格式規範搭配DateTime值使用。
搭配DateTimeOffset值使用時,此格式規範表示DateTimeOffset值與UTC之間的時差,以小時為單位。
顯示時差時,一定會有前置正負號。
加號(+)表示早於UTC的時數,減號(-)表示晚於UTC的時數。
單一位數的時差會格式化為有前置零的數字。
下列範例會在自訂格式字串中加入"zz"自訂格式規範。
DateTimedate1=DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",
date1));
//Displays-7,-07,-07:00
DateTimeOffsetdate2=newDateTimeOffset(2008,8,1,0,0,0,
newTimeSpan(6,0,0));
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",
date2));
//Displays+6,+06,+06:00
Dimdate1AsDate=Date.UtcNow
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",_
date1))
'Displays-7,-07,-07:00
Dimdate2AsNewDateTimeOffset(2008,8,1,0,0,0,_
NewTimespan(6,0,0))
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",_
date2))
'Displays+6,+06,+06:00
回到表格
"Zzz"自訂格式規範
搭配DateTime值使用時,"zzz"自訂格式規範表示本地作業系統時區與UTC之間的時差(帶正負號),以小時和分鐘為單位。
它不會反映執行個體的DateTime.Kind屬性值。
因此,不建議將"zzz"格式規範搭配DateTime值使用。
搭配DateTimeOffset值使用時,此格式規範表示DateTimeOffset值與UTC之間的時差,以小時和分鐘為單位。
顯示時差時,一定會有前置正負號。
加號(+)表示早於UTC的時數,減號(-)表示晚於UTC的時數。
單一位數的時差會格式化為有前置零的數字。
下列範例會在自訂格式字串中加入"zzz"自訂格式規範。
DateTimedate1=DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",
date1));
//Displays-7,-07,-07:00
DateTimeOffsetdate2=newDateTimeOffset(2008,8,1,0,0,0,
newTimeSpan(6,0,0));
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",
date2));
//Displays+6,+06,+06:00
Dimdate1AsDate=Date.UtcNow
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",_
date1))
'Displays-7,-07,-07:00
Dimdate2AsNewDateTimeOffset(2008,8,1,0,0,0,_
NewTimespan(6,0,0))
Console.WriteLine(String.Format("{0:%z},{0:zz},{0:zzz}",_
date2))
'Displays+6,+06,+06:00
回到表格
日期和時間分隔符號規範
":"自訂格式規範
":"自訂格式規範表示時間分隔符號,用於區別時、分、秒。
適當的當地語系化時間分隔符號是擷取自目前或指定之文化特性的DateTimeFormatInfo.TimeSeparator屬性。
注意
若要變更特定日期和時間字串的時間分隔符號,請在常值字串分隔符號內指定分隔字元。
例如,自訂格式字串hh'_'dd'_'ss產生的結果字串中,一律使用"_"(底線)作為時間分隔符號。
若要變更文化特性所有日期的時間分隔符號,請變更目前文化特性的DateTimeFormatInfo.TimeSeparator屬性值,或是具現化DateTimeFormatInfo物件、將字元指派給它的TimeSeparator屬性,並呼叫包含IFormatProvider參數的格式化方法之多載。
如果單獨使用":"格式規範,而沒有其他自訂格式規範,則會將它解譯為標準日期和時間格式規範,並擲回FormatException。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
回到表格
"/"自訂格式規範
"/"自訂格式規範表示日期分隔符號,用於區別年、月、日。
適當的當地語系化日期分隔符號是擷取自目前或指定之文化特性的DateTimeFormatInfo.DateSeparator屬性。
注意
若要變更特定日期和時間字串的日期分隔符號,請在常值字串分隔符號內指定分隔字元。
例如,自訂格式字串mm'/'dd'/'yyyy產生的結果字串中,一律使用"/"作為日期分隔符號。
若要變更文化特性的所有日期之日期分隔符號,請變更目前文化特性的DateTimeFormatInfo.DateSeparator屬性值,或是具現化DateTimeFormatInfo物件、將字元指派給它的DateSeparator屬性,並呼叫包含IFormatProvider參數的格式化方法之多載。
如果單獨使用"/"格式規範,而沒有其他自訂格式規範,則會將它解譯為標準日期和時間格式規範,並擲回FormatException。
如需如何使用單一格式規範的詳細資訊,請參閱本文稍後的使用單一自訂格式規範。
回到表格
字元常值
自訂日期和時間格式字串中的下列字元是保留的,而且一律會被視為格式化字元,在、、"和中,則是'/\特殊字元。
F
H
K
M
d
f
g
h
m
s
t
y
z
%
:
/
"
'
\
所有其他字元一律會解譯為字元常值,並在格式化作業中,原封不動地包含在結果字串中。
在剖析作業中,它們必須完全符合輸入字串中的字元;這項比較會區分大小寫。
下列範例包含常值字元"PST"(太平洋標準時間)和"PDT"(太平洋日光節約時間),以表示格式字串中的當地時區。
請注意,此字串會包含在結果字串中,而且包含當地時區字串的字串也會成功剖析。
usingSystem;
usingSystem.Globalization;
publicclassExample
{
publicstaticvoidMain()
{
String[]formats={"ddMMMyyyyhh:mmttPST",
"ddMMMyyyyhh:mmttPDT"};
vardat=newDateTime(2016,8,18,16,50,0);
//Displaytheresultstring.
Console.WriteLine(dat.ToString(formats[1]));
//Parseastring.
Stringvalue="25Dec201612:00pmPST";
DateTimenewDate;
if(DateTime.TryParseExact(value,formats,null,
DateTimeStyles.None,outnewDate))
Console.WriteLine(newDate);
else
Console.WriteLine("Unabletoparse'{0}'",value);
}
}
//Theexampledisplaysthefollowingoutput:
//18Aug201604:50PMPDT
//12/25/201612:00:00PM
ImportsSystem.Globalization
ModuleExample
PublicSubMain()
Dimformats()AsString={"ddMMMyyyyhh:mmttPST",
"ddMMMyyyyhh:mmttPDT"}
DimdatAsNewDate(2016,8,18,16,50,0)
'Displaytheresultstring.
Console.WriteLine(dat.ToString(formats(1)))
'Parseastring.
DimvalueAsString="25Dec201612:00pmPST"
DimnewDateAsDate
IfDate.TryParseExact(value,formats,Nothing,
DateTimeStyles.None,newDate)Then
Console.WriteLine(newDate)
Else
Console.WriteLine("Unabletoparse'{0}'",value)
EndIf
EndSub
EndModule
'Theexampledisplaysthefollowingoutput:
'18Aug201604:50PMPDT
'12/25/201612:00:00PM
您可以使用兩種方式來指定將字元解譯為常值字元,而不是保留字元,以便包含在結果字串中,或在輸入字串中成功剖析:
將每個保留字元逸出。
如需詳細資訊,請參閱使用Escape字元。
下列範例包含常值字元"pst"(太平洋標準時間),以表示格式字串中的當地時區。
由於"s"與"t"是自訂格式字串,因此必須逸出這兩個字元才能解譯為字元常值。
usingSystem;
usingSystem.Globalization;
publicclassExample
{
publicstaticvoidMain()
{
Stringformat="ddMMMyyyyhh:mmttp\\s\\t";
vardat=newDateTime(2016,8,18,16,50,0);
//Displaytheresultstring.
Console.WriteLine(dat.ToString(format));
//Parseastring.
Stringvalue="25Dec201612:00pmpst";
DateTimenewDate;
if(DateTime.TryParseExact(value,format,null,
DateTimeStyles.None,outnewDate))
Console.WriteLine(newDate);
else
Console.WriteLine("Unabletoparse'{0}'",value);
}
}
//Theexampledisplaysthefollowingoutput:
//18Aug201604:50PMPDT
//12/25/201612:00:00PM
ImportsSystem.Globalization
ModuleExample
PublicSubMain()
DimfmtAsString="ddMMMyyyyhh:mmttp\s\t"
DimdatAsNewDate(2016,8,18,16,50,0)
'Displaytheresultstring.
Console.WriteLine(dat.ToString(fmt))
'Parseastring.
DimvalueAsString="25Dec201612:00pmpst"
DimnewDateAsDate
IfDate.TryParseExact(value,fmt,Nothing,
DateTimeStyles.None,newDate)Then
Console.WriteLine(newDate)
Else
Console.WriteLine("Unabletoparse'{0}'",value)
EndIf
EndSub
EndModule
'Theexampledisplaysthefollowingoutput:
'18Aug201604:50PMpst
'12/25/201612:00:00PM
以雙引號或單引號括住整個常值字串。
下列範例類似上一個範例,不同之處在於"pst"會以雙引號括住,以表示整個分隔的字串都應該解譯為字元常值。
usingSystem;
usingSystem.Globalization;
publicclassExample
{
publicstaticvoidMain()
{
Stringformat="ddMMMyyyyhh:mmtt\"pst\"";
vardat=newDateTime(2016,8,18,16,50,0);
//Displaytheresultstring.
Console.WriteLine(dat.ToString(format));
//Parseastring.
Stringvalue="25Dec201612:00pmpst";
DateTimenewDate;
if(DateTime.TryParseExact(value,format,null,
DateTimeStyles.None,outnewDate))
Console.WriteLine(newDate);
else
Console.WriteLine("Unabletoparse'{0}'",value);
}
}
//Theexampledisplaysthefollowingoutput:
//18Aug201604:50PMPDT
//12/25/201612:00:00PM
ImportsSystem.Globalization
ModuleExample
PublicSubMain()
DimfmtAsString="ddMMMyyyyhh:mmtt""pst"""
DimdatAsNewDate(2016,8,18,16,50,0)
'Displaytheresultstring.
Console.WriteLine(dat.ToString(fmt))
'Parseastring.
DimvalueAsString="25Dec201612:00pmpst"
DimnewDateAsDate
IfDate.TryParseExact(value,fmt,Nothing,
DateTimeStyles.None,newDate)Then
Console.WriteLine(newDate)
Else
Console.WriteLine("Unabletoparse'{0}'",value)
EndIf
EndSub
EndModule
'Theexampledisplaysthefollowingoutput:
'18Aug201604:50PMpst
'12/25/201612:00:00PM
備註
使用單一自訂格式規範
自訂日期和時間格式字串是由兩個或多個字元所組成。
日期和時間格式化方法會將任何單一字元字串解譯為標準日期和時間格式字串。
如果這些方法無法將該字元辨認為有效的格式規範,則會擲回FormatException。
例如,僅由規範"h"所組成的格式字串會解譯為標準日期和時間字串。
不過,在這種特殊情形下會擲回例外狀況,因為並沒有"h"標準日期和時間格式規範。
若要使用任何自訂日期和時間格式規範做為格式字串中的唯一規範(也就是單獨使用"d"、"f"、"F"、"g"、"h"、"H"、"K"、"m"、"M"、"s"、"t"、"y"、"z"、":"或"/"自訂格式規範),請在規範之前或之後加上一個空格,或在單一自訂日期和時間規範之前加上一個百分比("%")格式規範。
例如,"%h"會解譯為自訂日期和時間格式字串,該字串會顯示由目前日期和時間值所表示的小時。
您也可以使用"h"或"h"格式字串,然而這會在結果字串中的小時旁邊加上空格。
下列範例示範這三個格式字串。
DateTimedat1=newDateTime(2009,6,15,13,45,0);
Console.WriteLine("'{0:%h}'",dat1);
Console.WriteLine("'{0:h}'",dat1);
Console.WriteLine("'{0:h}'",dat1);
//Theexampledisplaysthefollowingoutput:
//'1'
//'1'
//'1'
Dimdat1AsDate=#6/15/20091:45PM#
Console.WriteLine("'{0:%h}'",dat1)
Console.WriteLine("'{0:h}'",dat1)
Console.WriteLine("'{0:h}'",dat1)
'Theexampledisplaysthefollowingoutput:
''1'
''1'
''1'
使用Escape字元
格式字串中的"d"、"f"、"F"、"g"、"h"、"H"、"K"、"m"、"M"、"s"、"t"、"y"、"z"、":"或"/"字元會解譯為自訂格式規範,而不是常值字元。
若要避免將字元解譯為格式規範,您可以在前面加上反斜線(\),這是逸出字元。
逸出字元表示接下來的字元是字元常值,應該原封不動地放入結果字串中。
若要在結果字串中加上反斜線,您必須再加上一個反斜線(變成\\),才能將反斜線解譯為常值。
注意
某些編譯器(例如C++和C#編譯器)也可能會將單一反斜線字元解譯為逸出字元。
為了確保字串在格式化時能夠正確獲得解譯,您可以在C#中的字串前面加上逐字字串常值字元(@字元),或在C#和C++中的每個反斜線前面再加上一個反斜線字元。
下列C#範例示範這兩種做法。
下列範例會使用逸出字元,以避免格式化作業將"h"和"m"字元解譯為格式規範。
DateTimedate=newDateTime(2009,06,15,13,45,30,90);
stringfmt1="h\\hm\\m";
stringfmt2=@"h\hm\m";
Console.WriteLine("{0}({1})->{2}",date,fmt1,date.ToString(fmt1));
Console.WriteLine("{0}({1})->{2}",date,fmt2,date.ToString(fmt2));
//Theexampledisplaysthefollowingoutput:
//6/15/20091:45:30PM(h\hm\m)->1h45m
//6/15/20091:45:30PM(h\hm\m)->1h45m
Dimdate1AsDate=#6/15/200913:45#
DimfmtAsString="h\hm\m"
Console.WriteLine("{0}({1})->{2}",date1,fmt,date1.ToString(fmt))
'Theexampledisplaysthefollowingoutput:
'6/15/20091:45:00PM(h\hm\m)->1h45m
控制台設定
[控制台]中的[地區及語言選項]設定會影響格式化作業(其中包含許多自訂日期和時間格式規範)所產生的結果字串。
這些設定是用來初始化DateTimeFormatInfo與目前文化特性相關聯的物件,以提供用來管理格式的值。
使用不同設定的電腦會產生不同的結果字串。
此外,如果您使用CultureInfo(String)建構函式來將新的CultureInfo物件具現化,而此物件代表的文化特性與目前系統文化特性相同,則[控制台]中的[地區及語言選項]項目所建立的任何自訂都會套用至新的CultureInfo物件。
您可以使用CultureInfo(String,Boolean)建構函式來建立不反映系統自訂的CultureInfo物件。
DateTimeFormatInfo屬性
格式設定會受到目前物件的屬性所影響DateTimeFormatInfo,此物件是由目前的文化特性隱含提供,或由叫用格式之方法的參數明確提供IFormatProvider。
在IFormatProvider參數中,您應該指定表示文化特性的CultureInfo物件,指定或DateTimeFormatInfo物件。
許多自訂日期和時間格式規範所產生的結果字串,也取決於目前DateTimeFormatInfo物件的屬性。
您的應用程式可以變更對應的DateTimeFormatInfo屬性,藉此改變某些自訂日期和時間格式規範所產生的結果。
例如,"ddd"格式規範會將AbbreviatedDayNames字串陣列中找到的縮寫星期幾名稱加入至結果字串。
同樣地,"MMMM"格式規範會將MonthNames字串陣列中找到的完整月份名稱加到結果字串。
另請參閱
System.DateTime
System.IFormatProvider
格式化類型
標準日期和時間格式字串
範例:.NETCoreWinForms格式化公用程式(c#)
範例:.netCoreWinForms格式化公用程式(VisualBasic)
本文內容
延伸文章資訊
- 1發問
Format("{0:yyyy/MM/dd HH:MM:ss}",時間) ... 如何把2012/2/9 下午01:39:11用string.format改成2012/02/09 13:39:1...
- 2DateTime Format In C#
- 3Convert DateTime in C# to yyyy-MM-dd format and Store it to ...
Use DateTime.Now.ToString("yyyy-MM-dd h:mm tt"); . See this.
- 4String.Format yyyy/MM/dd? 誤會大了 - 黑暗執行緒
換句話說,如果日期格式被設定為yyyy-MM-dd,則DateTimeFormatInfo.DataSeparator = "-",此時string.Format("{0:yyyy/MM/dd}...
- 5C# DateTime Format:Working with Date &Time format in C#|
You can convert the dateTime to any DateTime format by simply adding the required format in ToStr...