作法:在日期與時間值中顯示毫秒 - Microsoft Docs

文章推薦指數: 80 %
投票人數:10人

本文說明如何在格式化的日期和時間字串中包含日期和時間的毫秒元件。

顯示DateTime 值的毫秒部分. 如果您使用的是日期的字串表示,請DateTime ... 跳到主要內容 已不再支援此瀏覽器。

請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。

下載MicrosoftEdge 其他資訊 目錄 結束焦點模式 語言 閱讀英文 儲存 編輯 共用 Twitter LinkedIn Facebook 電子郵件 WeChat 目錄 語言 語言 閱讀英文 儲存 目錄 閱讀英文 儲存 編輯 Twitter LinkedIn Facebook 電子郵件 WeChat 目錄 作法:在日期與時間值中顯示毫秒 發行項 12/12/2021 3位參與者 此頁面有所助益嗎? Yes No 還有其他意見反應嗎? 系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。

隱私權原則。

送出 謝謝。

本文內容 預設的日期和時間格式化方法(例如DateTime.ToString())包括時間值的小時、分鐘和秒,但不包括它的毫秒元件。

本文說明如何在格式化的日期和時間字串中包含日期和時間的毫秒元件。

顯示DateTime值的毫秒部分 如果您使用的是日期的字串表示,請DateTimeDateTimeOffset使用靜態DateTime.Parse(String)或方法將它轉換為或值DateTimeOffset.Parse(String)。

若要擷取時間毫秒元件的字串表示,請呼叫日期和時間值的DateTime.ToString(String)或ToString方法,並單獨傳遞fff或FFF自訂格式模式,或是連同其他自訂格式規範作為format參數一併傳遞。

提示 毫秒分隔符號是由屬性所指定System.Globalization.NumberFormatInfo.NumberDecimalSeparator。

範例 此範例會對主控台單獨顯示DateTime和DateTimeOffset值的毫秒元件,以及包含在較長的日期和時間字串中一併顯示。

usingSystem.Globalization; usingSystem.Text.RegularExpressions; stringdateString="7/16/20088:32:45.126AM"; try { DateTimedateValue=DateTime.Parse(dateString); DateTimeOffsetdateOffsetValue=DateTimeOffset.Parse(dateString); //DisplayMillisecondcomponentalone. Console.WriteLine("Millisecondcomponentonly:{0}", dateValue.ToString("fff")); Console.WriteLine("Millisecondcomponentonly:{0}", dateOffsetValue.ToString("fff")); //DisplayMillisecondcomponentwithfulldateandtime. Console.WriteLine("DateandTimewithMilliseconds:{0}", dateValue.ToString("MM/dd/yyyyhh:mm:ss.ffftt")); Console.WriteLine("DateandTimewithMilliseconds:{0}", dateOffsetValue.ToString("MM/dd/yyyyhh:mm:ss.ffftt")); stringfullPattern=DateTimeFormatInfo.CurrentInfo.FullDateTimePattern; //Createaformatsimilarto.fffbutbasedonthecurrentculture. stringmillisecondFormat=$"{NumberFormatInfo.CurrentInfo.NumberDecimalSeparator}fff"; //Appendmillisecondpatterntocurrentculture'sfulldatetimepattern. fullPattern=Regex.Replace(fullPattern,"(:ss|:s)",$"$1{millisecondFormat}"); //DisplayMillisecondcomponentwithmodifiedfulldateandtimepattern. Console.WriteLine("Modifiedfulldatetimepattern:{0}", dateValue.ToString(fullPattern)); Console.WriteLine("Modifiedfulldatetimepattern:{0}", dateOffsetValue.ToString(fullPattern)); } catch(FormatException) { Console.WriteLine("Unabletoconvert{0}toadate.",dateString); } //Theexampledisplaysthefollowingoutputifthecurrentcultureisen-US: //Millisecondcomponentonly:126 //Millisecondcomponentonly:126 //DateandTimewithMilliseconds:07/16/200808:32:45.126AM //DateandTimewithMilliseconds:07/16/200808:32:45.126AM //Modifiedfulldatetimepattern:Wednesday,July16,20088:32:45.126AM //Modifiedfulldatetimepattern:Wednesday,July16,20088:32:45.126AM ImportsSystem.Globalization ImportsSystem.Text.REgularExpressions ModuleMillisecondDisplay PublicSubMain() DimdateStringAsString="7/16/20088:32:45.126AM" Try DimdateValueAsDate=Date.Parse(dateString) DimdateOffsetValueAsDateTimeOffset=DateTimeOffset.Parse(dateString) 'DisplayMillisecondcomponentalone. Console.WriteLine("Millisecondcomponentonly:{0}",_ dateValue.ToString("fff")) Console.WriteLine("Millisecondcomponentonly:{0}",_ dateOffsetValue.ToString("fff")) 'DisplayMillisecondcomponentwithfulldateandtime. Console.WriteLine("DateandTimewithMilliseconds:{0}",_ dateValue.ToString("MM/dd/yyyyhh:mm:ss.ffftt")) Console.WriteLine("DateandTimewithMilliseconds:{0}",_ dateOffsetValue.ToString("MM/dd/yyyyhh:mm:ss.ffftt")) DimfullPatternAsString=DateTimeFormatInfo.CurrentInfo.FullDateTimePattern 'Createaformatsimilarto.fffbutbasedonthecurrentculture. DimmillisecondFormatasString=$"{NumberFormatInfo.CurrentInfo.NumberDecimalSeparator}fff" 'Appendmillisecondpatterntocurrentculture'sfulldatetimepattern. fullPattern=Regex.Replace(fullPattern,"(:ss|:s)",$"$1{millisecondFormat}") 'DisplayMillisecondcomponentwithmodifiedfulldateandtimepattern. Console.WriteLine("Modifiedfulldatetimepattern:{0}",_ dateValue.ToString(fullPattern)) Console.WriteLine("Modifiedfulldatetimepattern:{0}",_ dateOffsetValue.ToString(fullPattern)) CatcheAsFormatException Console.WriteLine("Unabletoconvert{0}toadate.",dateString) EndTry EndSub EndModule 'Theexampledisplaysthefollowingoutputifthecurrentcultureisen-US: 'Millisecondcomponentonly:126 'Millisecondcomponentonly:126 'DateandTimewithMilliseconds:07/16/200808:32:45.126AM 'DateandTimewithMilliseconds:07/16/200808:32:45.126AM 'Modifiedfulldatetimepattern:Wednesday,July16,20088:32:45.126AM 'Modifiedfulldatetimepattern:Wednesday,July16,20088:32:45.126AM fff格式模式會包含毫秒值尾端的任何零。

FFF格式模式則會加以隱藏。

下列範例會說明其間的差異。

DateTimedateValue=newDateTime(2008,7,16,8,32,45,180); Console.WriteLine(dateValue.ToString("fff")); Console.WriteLine(dateValue.ToString("FFF")); //Theexampledisplaysthefollowingoutputtotheconsole: //180 //18 DimdateValueAsNewDate(2008,7,16,8,32,45,180) Console.WriteLIne(dateValue.ToString("fff")) Console.WriteLine(dateValue.ToString("FFF")) 'Theexampledisplaysthefollowingoutputtotheconsole: '180 '18 定義包含日期和時間毫秒部分之完整自訂格式規範的問題在於,它會定義硬式編碼格式,而該格式可能不會對應至應用程式目前文化特性中時間項目的排列。

建議改為擷取目前文化特性之DateTimeFormatInfo物件所定義的其中一個日期和時間顯示模式,然後修改該模式以加入毫秒。

此範例也會說明這個方法。

它會從屬性抓取目前文化特性的完整日期和時間模式DateTimeFormatInfo.FullDateTimePattern,然後插入自訂模式fff以及目前文化特性的毫秒分隔符號。

此範例會在單一方法呼叫中使用正則運算式來進行這項作業。

除了毫秒之外,您也可以使用自訂格式規範顯示秒的其他小數部分。

例如,f或F自訂格式規範會顯示十分之一秒,ff或FF自訂格式規範會顯示百分之一秒,而ffff或FFFF自訂格式規範會顯示萬分之一秒。

毫秒的小數部分會在傳回的字串中被截斷,而不是四捨五入。

下列範例會使用這些格式規範。

DateTimedateValue=newDateTime(2008,7,16,8,32,45,180); Console.WriteLine("{0}seconds",dateValue.ToString("s.f")); Console.WriteLine("{0}seconds",dateValue.ToString("s.ff")); Console.WriteLine("{0}seconds",dateValue.ToString("s.ffff")); //Theexampledisplaysthefollowingoutputtotheconsole: //45.1seconds //45.18seconds //45.1800seconds DimdateValueAsNewDateTime(2008,7,16,8,32,45,180) Console.WriteLine("{0}seconds",dateValue.ToString("s.f")) Console.WriteLine("{0}seconds",dateValue.ToString("s.ff")) Console.WriteLine("{0}seconds",dateValue.ToString("s.ffff")) 'Theexampledisplaysthefollowingoutputtotheconsole: '45.1seconds '45.18seconds '45.1800seconds 注意 您可以使用非常小的小數單位來顯示秒,例如萬分之一秒或十萬分之一秒。

不過,這些值可能沒有太大的意義。

日期和時間值的有效位數取決於作業系統時鐘的解析度。

如需詳細資訊,請參閱您的作業系統使用的API: Windows7:GetSystemTimeAsFileTime Windows8和更新版本:GetSystemTimePreciseAsFileTime Linux和macOS:clock_gettime 另請參閱 DateTimeFormatInfo 自訂日期和時間格式字串 本文內容



請為這篇文章評分?