TimeSpan.ToString 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將目前 TimeSpan 物件的值,轉換為其相等的字串表示。
多載
ToString() |
將目前 TimeSpan 物件的值,轉換為其相等的字串表示。 |
ToString(String) |
使用指定的格式,將目前 TimeSpan 物件的值,轉換為其相等字串表示。 |
ToString(String, IFormatProvider) |
使用指定的格式和特定文件特性格式資訊,將目前 TimeSpan 物件的值,轉換為其相等的字串表示。 |
ToString()
- 來源:
- TimeSpan.cs
- 來源:
- TimeSpan.cs
- 來源:
- TimeSpan.cs
將目前 TimeSpan 物件的值,轉換為其相等的字串表示。
public:
override System::String ^ ToString();
public override string ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
傳回
目前 TimeSpan 值的字串表示。
範例
下列範例顯示藉由呼叫 ToString 具有數個值之 方法所傳回的 TimeSpan 字串。 請注意,雖然此範例不會直接呼叫 ToString 方法,但在嘗試將值轉換為TimeSpan其字串表示時,方法會Console.WriteLine呼叫此方法。
TimeSpan span;
// Initialize a time span to zero.
span = TimeSpan.Zero;
Console.WriteLine(span);
// Initialize a time span to 14 days.
span = new TimeSpan(-14, 0, 0, 0, 0);
Console.WriteLine(span);
// Initialize a time span to 1:02:03.
span = new TimeSpan(1, 2, 3);
Console.WriteLine(span);
// Initialize a time span to 250 milliseconds.
span = new TimeSpan(0, 0, 0, 0, 250);
Console.WriteLine(span);
// Initialize a time span to 99 days, 23 hours, 59 minutes, and 59.999 seconds.
span = new TimeSpan(99, 23, 59, 59, 999);
Console.WriteLine(span);
// Initialize a time span to 3 hours.
span = new TimeSpan(3, 0, 0);
Console.WriteLine(span);
// Initialize a timespan to 25 milliseconds.
span = new TimeSpan(0, 0, 0, 0, 25);
Console.WriteLine(span);
// The example displays the following output:
// 00:00:00
// -14.00:00:00
// 01:02:03
// 00:00:00.2500000
// 99.23:59:59.9990000
// 03:00:00
// 00:00:00.0250000
// Initialize a time span to zero.
let span = TimeSpan.Zero
printfn $"{span}"
// Initialize a time span to 14 days.
let span = TimeSpan(-14, 0, 0, 0, 0)
printfn $"{span}"
// Initialize a time span to 1:02:03.
let span = TimeSpan(1, 2, 3)
printfn $"{span}"
// Initialize a time span to 250 milliseconds.
let span = TimeSpan(0, 0, 0, 0, 250)
printfn $"{span}"
// Initialize a time span to 99 days, 23 hours, 59 minutes, and 59.999 seconds.
let span = TimeSpan(99, 23, 59, 59, 999)
printfn $"{span}"
// Initialize a time span to 3 hours.
let span = TimeSpan(3, 0, 0)
printfn $"{span}"
// Initialize a timespan to 25 milliseconds.
let span = TimeSpan(0, 0, 0, 0, 25)
printfn $"{span}"
// The example displays the following output:
// 00:00:00
// -14.00:00:00
// 01:02:03
// 00:00:00.2500000
// 99.23:59:59.9990000
// 03:00:00
// 00:00:00.0250000
Module ToString
Public Sub Main()
Dim span As TimeSpan
' Initialize a time span to zero.
span = TimeSpan.Zero
Console.WriteLine(span)
' Initialize a time span to 14 days.
span = New TimeSpan(-14, 0, 0, 0, 0)
Console.WriteLine(span)
' Initialize a time span to 1:02:03.
span = New TimeSpan(1, 2, 3)
Console.WriteLine(span)
' Initialize a time span to 250 milliseconds.
span = New TimeSpan(0, 0, 0, 0, 250)
Console.WriteLine(span)
' Initialize a time span to 99 days, 23 hours, 59 minutes, and 59.9999999 seconds.
span = New TimeSpan(99, 23, 59, 59, 999)
Console.WriteLine(span)
' Initialize a time span to 3 hours.
span = New TimeSpan(3, 0, 0)
Console.WriteLine(span)
' Initialize a timespan to 25 milliseconds.
span = New TimeSpan(0, 0, 0, 0, 25)
Console.WriteLine(span)
End Sub
End Module
' The example displays the following output:
' 00:00:00
' -14.00:00:00
' 01:02:03
' 00:00:00.2500000
' 99.23:59:59.9990000
' 03:00:00
' 00:00:00.0250000
備註
傳回的字串會使用 「c」 格式規範格式化,而且具有下列格式:
[-][d.]hh:mm:ss[.fffffff]
方括弧中的元素 ([ 和 ]) 可能不會包含在傳回的字串中。 冒號和句號 (: 和.) 是常值字元。 下表列出非常值元素。 請注意,方法所傳回的 ToString() 字串不區分文化特性。
項目 | 描述 |
---|---|
"-" | 減號,表示負時間間隔。 正時間範圍未包含正負號。 |
“d” | 時間間隔中的天數。 如果時間間隔小於一天,則會省略這個專案。 |
“hh” | 時間間隔中的小時數,範圍從 0 到 23。 |
“mm” | 時間間隔中的分鐘數,範圍從0到59。 |
“ss” | 時間間隔中的秒數,範圍從0到59。 |
“fffffff” | 時間間隔中的小數秒數。 如果時間間隔不包含小數秒,則會省略這個專案。 如果有,小數秒數一律會使用七個小數字數來表示。 |
給呼叫者的注意事項
.NET Framework 4 已新增格式化TimeSpan值的支援。 不過, ToString() 方法多載會維持不區分文化特性。 其行為與舊版 .NET Framework 保持不變。 若要控制值的格式 TimeSpan 設定,請呼叫 ToString(String) 或 ToString(String, IFormatProvider) 多載。
另請參閱
適用於
ToString(String)
- 來源:
- TimeSpan.cs
- 來源:
- TimeSpan.cs
- 來源:
- TimeSpan.cs
使用指定的格式,將目前 TimeSpan 物件的值,轉換為其相等字串表示。
public:
System::String ^ ToString(System::String ^ format);
public string ToString (string format);
public string ToString (string? format);
override this.ToString : string -> string
Public Function ToString (format As String) As String
參數
傳回
目前 TimeSpan 值的字串表示,採用 format
參數所指定的格式。
例外狀況
format
參數無法辨識或不受支援。
範例
下列範例會使用標準和自定義 TimeSpan 格式字串來顯示值陣列中每個元素的 TimeSpan 字串表示
TimeSpan[] spans = {
TimeSpan.Zero,
new TimeSpan(-14, 0, 0, 0, 0),
new TimeSpan(1, 2, 3),
new TimeSpan(0, 0, 0, 0, 250),
new TimeSpan(99, 23, 59, 59, 999),
new TimeSpan(3, 0, 0),
new TimeSpan(0, 0, 0, 0, 25)
};
string[] fmts = { "c", "g", "G", @"hh\:mm\:ss", "%m' min.'" };
foreach (TimeSpan span in spans)
{
foreach (string fmt in fmts)
Console.WriteLine("{0}: {1}", fmt, span.ToString(fmt));
Console.WriteLine();
}
// The example displays the following output:
// c: 00:00:00
// g: 0:00:00
// G: 0:00:00:00.0000000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
//
// c: -14.00:00:00
// g: -14:0:00:00
// G: -14:00:00:00.0000000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
//
// c: 01:02:03
// g: 1:02:03
// G: 0:01:02:03.0000000
// hh\:mm\:ss: 01:02:03
// %m' min.': 2 min.
//
// c: 00:00:00.2500000
// g: 0:00:00.25
// G: 0:00:00:00.2500000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
//
// c: 99.23:59:59.9990000
// g: 99:23:59:59.999
// G: 99:23:59:59.9990000
// hh\:mm\:ss: 23:59:59
// %m' min.': 59 min.
//
// c: 03:00:00
// g: 3:00:00
// G: 0:03:00:00.0000000
// hh\:mm\:ss: 03:00:00
// %m' min.': 0 min.
//
// c: 00:00:00.0250000
// g: 0:00:00.025
// G: 0:00:00:00.0250000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
let spans =
[| TimeSpan.Zero
TimeSpan(-14, 0, 0, 0, 0)
TimeSpan(1, 2, 3)
TimeSpan(0, 0, 0, 0, 250)
TimeSpan(99, 23, 59, 59, 999)
TimeSpan(3, 0, 0)
TimeSpan(0, 0, 0, 0, 25) |]
let fmts = [| "c"; "g"; "G"; @"hh\:mm\:ss"; "%m' min.'" |]
for span in spans do
for fmt in fmts do
printfn $"{fmt}: {span.ToString fmt}"
printfn ""
// The example displays the following output:
// c: 00:00:00
// g: 0:00:00
// G: 0:00:00:00.0000000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
//
// c: -14.00:00:00
// g: -14:0:00:00
// G: -14:00:00:00.0000000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
//
// c: 01:02:03
// g: 1:02:03
// G: 0:01:02:03.0000000
// hh\:mm\:ss: 01:02:03
// %m' min.': 2 min.
//
// c: 00:00:00.2500000
// g: 0:00:00.25
// G: 0:00:00:00.2500000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
//
// c: 99.23:59:59.9990000
// g: 99:23:59:59.999
// G: 99:23:59:59.9990000
// hh\:mm\:ss: 23:59:59
// %m' min.': 59 min.
//
// c: 03:00:00
// g: 3:00:00
// G: 0:03:00:00.0000000
// hh\:mm\:ss: 03:00:00
// %m' min.': 0 min.
//
// c: 00:00:00.0250000
// g: 0:00:00.025
// G: 0:00:00:00.0250000
// hh\:mm\:ss: 00:00:00
// %m' min.': 0 min.
Module Example
Public Sub Main()
Dim spans() As TimeSpan = { TimeSpan.Zero, New TimeSpan(-14, 0, 0, 0, 0),
New TimeSpan(1, 2, 3),
New TimeSpan(0, 0, 0, 0, 250),
New TimeSpan(99, 23, 59, 59, 999),
New TimeSpan(3, 0, 0),
New TimeSpan(0, 0, 0, 0, 25) }
Dim fmts() As String = { "c", "g", "G", "hh\:mm\:ss", "%m' min.'" }
For Each span As TimeSpan In spans
For Each fmt As String In fmts
Console.WriteLine("{0}: {1}", fmt, span.ToString(fmt))
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
' c: 00:00:00
' g: 0:00:00
' G: 0:00:00:00.0000000
' hh\:mm\:ss: 00:00:00
' %m' min.': 0 min.
'
' c: -14.00:00:00
' g: -14:0:00:00
' G: -14:00:00:00.0000000
' hh\:mm\:ss: 00:00:00
' %m' min.': 0 min.
'
' c: 01:02:03
' g: 1:02:03
' G: 0:01:02:03.0000000
' hh\:mm\:ss: 01:02:03
' %m' min.': 2 min.
'
' c: 00:00:00.2500000
' g: 0:00:00.25
' G: 0:00:00:00.2500000
' hh\:mm\:ss: 00:00:00
' %m' min.': 0 min.
'
' c: 99.23:59:59.9990000
' g: 99:23:59:59.999
' G: 99:23:59:59.9990000
' hh\:mm\:ss: 23:59:59
' %m' min.': 59 min.
'
' c: 03:00:00
' g: 3:00:00
' G: 0:03:00:00.0000000
' hh\:mm\:ss: 03:00:00
' %m' min.': 0 min.
'
' c: 00:00:00.0250000
' g: 0:00:00.025
' G: 0:00:00:00.0250000
' hh\:mm\:ss: 00:00:00
' %m' min.': 0 min.
備註
參數 format
可以是值的任何有效標準或自定義格式規範 TimeSpan 。 如果 format
等於 String.Empty 或 為 null
,則目前 TimeSpan 對象的傳回值會使用通用格式規範 (“c”) 格式化。 如果 format
是任何其他值,方法會 FormatException擲回 。
如果 format
是標準格式字串,則傳回字串的格式是由目前文化特性的格式慣例所定義。
重要
值的自定義格式字串 TimeSpan 不包含日期或時間分隔符。 如果您想要將這些元素包含在格式字串中,則必須將它們視為字元常值。 如需詳細資訊,請參閱圖例的範例,並參閱 自定義 TimeSpan 格式字串 主題。
.NET 提供廣泛的格式支援,如下列格式主題中更詳細地說明:
如需值格式字串 TimeSpan 的詳細資訊,請參閱 標準 TimeSpan 格式字串 和 自訂 TimeSpan 格式字串。
如需 .NET 中格式化支援的詳細資訊,請參閱 格式化類型。
另請參閱
適用於
ToString(String, IFormatProvider)
- 來源:
- TimeSpan.cs
- 來源:
- TimeSpan.cs
- 來源:
- TimeSpan.cs
使用指定的格式和特定文件特性格式資訊,將目前 TimeSpan 物件的值,轉換為其相等的字串表示。
public:
virtual System::String ^ ToString(System::String ^ format, IFormatProvider ^ formatProvider);
public string ToString (string format, IFormatProvider formatProvider);
public string ToString (string? format, IFormatProvider? formatProvider);
override this.ToString : string * IFormatProvider -> string
Public Function ToString (format As String, formatProvider As IFormatProvider) As String
參數
- formatProvider
- IFormatProvider
物件,提供特定文化特性格式資訊。
傳回
目前 TimeSpan 值的字串表示,如 format
和 formatProvider
所指定。
實作
例外狀況
format
參數無法辨識或不受支援。
範例
下列範例會 ToString(String, IFormatProvider) 呼叫 方法來格式化兩個時間間隔。 此範例會針對每個格式字串呼叫 方法兩次,先使用 en-US 文化特性的慣例來顯示它,然後使用 fr-FR 文化特性的慣例加以顯示。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
TimeSpan[] intervals = { new TimeSpan(38, 30, 15),
new TimeSpan(16, 14, 30) };
CultureInfo[] cultures = { new CultureInfo("en-US"),
new CultureInfo("fr-FR") };
string[] formats = {"c", "g", "G", @"hh\:mm\:ss" };
Console.WriteLine("{0,12} Format {1,22} {2,22}\n",
"Interval", cultures[0].Name, cultures[1].Name);
foreach (var interval in intervals) {
foreach (var fmt in formats)
Console.WriteLine("{0,12} {1,10} {2,22} {3,22}",
interval, fmt,
interval.ToString(fmt, cultures[0]),
interval.ToString(fmt, cultures[1]));
Console.WriteLine();
}
}
}
// The example displays the following output:
// Interval Format en-US fr-FR
//
// 1.14:30:15 c 1.14:30:15 1.14:30:15
// 1.14:30:15 g 1:14:30:15 1:14:30:15
// 1.14:30:15 G 1:14:30:15.0000000 1:14:30:15,0000000
// 1.14:30:15 hh\:mm\:ss 14:30:15 14:30:15
//
// 16:14:30 c 16:14:30 16:14:30
// 16:14:30 g 16:14:30 16:14:30
// 16:14:30 G 0:16:14:30.0000000 0:16:14:30,0000000
// 16:14:30 hh\:mm\:ss 16:14:30 16:14:30
open System
open System.Globalization
let intervals =
[| TimeSpan(38, 30, 15)
TimeSpan(16, 14, 30) |]
let cultures =
[| CultureInfo "en-US"
CultureInfo "fr-FR" |]
let formats = [| "c"; "g"; "G"; @"hh\:mm\:ss" |]
printfn $"""{"Interval",12} Format {cultures[0].Name,22} {cultures[1].Name,22}\n"""
for interval in intervals do
for fmt in formats do
printfn $"{interval,12} {fmt,10} {interval.ToString(fmt, cultures[0]),22} {interval.ToString(fmt, cultures[1]),22}"
printfn ""
// The example displays the following output:
// Interval Format en-US fr-FR
//
// 1.14:30:15 c 1.14:30:15 1.14:30:15
// 1.14:30:15 g 1:14:30:15 1:14:30:15
// 1.14:30:15 G 1:14:30:15.0000000 1:14:30:15,0000000
// 1.14:30:15 hh\:mm\:ss 14:30:15 14:30:15
//
// 16:14:30 c 16:14:30 16:14:30
// 16:14:30 g 16:14:30 16:14:30
// 16:14:30 G 0:16:14:30.0000000 0:16:14:30,0000000
// 16:14:30 hh\:mm\:ss 16:14:30 16:14:30
Imports System.Globalization
Module Example
Public Sub Main()
Dim intervals() As TimeSpan = { New TimeSpan(38, 30, 15),
New TimeSpan(16, 14, 30) }
Dim cultures() As CultureInfo = { New CultureInfo("en-US"),
New CultureInfo("fr-FR") }
Dim formats() As String = {"c", "g", "G", "hh\:mm\:ss" }
Console.WriteLine("{0,12} Format {1,22} {2,22}",
"Interval", cultures(0).Name, cultures(1).Name)
Console.WriteLine()
For Each interval In intervals
For Each fmt In formats
Console.WriteLine("{0,12} {1,10} {2,22} {3,22}",
interval, fmt,
interval.ToString(fmt, cultures(0)),
interval.ToString(fmt, cultures(1)))
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
' Interval Format en-US fr-FR
'
' 1.14:30:15 c 1.14:30:15 1.14:30:15
' 1.14:30:15 g 1:14:30:15 1:14:30:15
' 1.14:30:15 G 1:14:30:15.0000000 1:14:30:15,0000000
' 1.14:30:15 hh\:mm\:ss 14:30:15 14:30:15
'
' 16:14:30 c 16:14:30 16:14:30
' 16:14:30 g 16:14:30 16:14:30
' 16:14:30 G 0:16:14:30.0000000 0:16:14:30,0000000
' 16:14:30 hh\:mm\:ss 16:14:30 16:14:30
備註
參數 format
可以是值的任何有效標準或自定義格式規範 TimeSpan 。 如果 format
等於 String.Empty 或 為 null
,則目前 TimeSpan 對象的傳回值會使用通用格式規範 (“c”) 格式化。 如果 format 是任何其他值,方法會 FormatException擲回 。
重要
值的自定義格式字串 TimeSpan 不包含日期或時間分隔符。 如果您想要將這些元素包含在格式字串中,則必須將它們視為字元常值。 如需詳細資訊,請參閱圖例的範例,並參閱 自定義 TimeSpan 格式字串 主題。
.NET 提供廣泛的格式支援,如下列格式主題中更詳細地說明:
如需值格式字串 TimeSpan 的詳細資訊,請參閱 標準 TimeSpan 格式字串 和 自訂 TimeSpan 格式字串。
如需 .NET 中格式化支援的詳細資訊,請參閱 格式化類型。
參數 formatProvider
是實作, IFormatProvider 可提供傳回字串格式的特定文化特性資訊。 參數 formatProvider
可以是下列任一項:
CultureInfo物件,表示格式慣例要反映在傳回字串中的文化特性。 屬性 DateTimeFormatInfo 所 CultureInfo.DateTimeFormat 傳回的物件會定義傳回字串的格式。
DateTimeFormatInfo對象,定義傳回字串的格式。
實作 介面的 IFormatProvider 自定義物件。 其 IFormatProvider.GetFormat 方法會傳回提供 DateTimeFormatInfo 格式化信息的物件。
如果 為 formatProvider
null
,則會 DateTimeFormatInfo 使用與目前文化特性相關聯的物件。 如果 format
是自定義格式字串,則會 formatProvider
忽略 參數。