本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

TimeSpan.Parse 方法 (String)

 

将时间间隔的字符串表示形式转换为等效的 TimeSpan

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)

public static TimeSpan Parse(
	string s
)

参数

s
Type: System.String

一个字符串,用于指定进行转换的时间间隔。

返回值

Type: System.TimeSpan

s 对应的时间间隔。

Exception Condition
ArgumentNullException

snull

FormatException

s 的格式无效。

OverflowException

s 表示一个小于 TimeSpan.MinValue 或大于 TimeSpan.MaxValue 的数字。

- 或 -

天、小时、分钟和秒成分中至少有一个超出了其有效范围。

s参数包含一个时间间隔规范形式︰

[ws][-]{ d |[d.]hh:mm[:ss[.ff]] }[ws]

方括号 ([ and ]) 中的元素是可选的。 一个从列表中选择的替代项括在大括号 ({和}) 和由竖线分隔 (|) 是必需的。 下表描述每个元素。

元素

描述

ws

可选的空白区域。

-

可选的负号,指示负TimeSpan

d

范围从 0 到 10675199 天。

小时分隔天区分区域性的符号。 固定格式使用句点 ("。") 字符。

hh

小时数,范围从 0 到 23。

:

区分区域性的时间分隔符符号。 固定格式使用冒号 (":") 字符。

mm

分钟数,范围从 0 到 59。

ss

可选的秒,范围从 0 到 59。

分数 (竖式) 的第二个分离开来秒区分区域性的符号。 固定格式使用句点 ("。") 字符。

ff

可选秒的小数部分包含 1 到 7 十进制数字。

组件s必须共同指定大于或等于的时间间隔TimeSpan.MinValue且小于或等于TimeSpan.MaxValue

Parse(String)方法尝试分析s通过每个区域性特定的格式用于当前区域性。

调用函数说明:

当时间间隔组件要分析的字符串中包含多个七个数字,分析操作中的.NET Framework 3.5早期版本的分析中的操作行为可能也会有所不同.NET Framework 4。 在某些情况下,分析操作中,在成功.NET Framework 3.5和早期版本可能失败并引发OverflowException中.NET Framework 4。 在其他情况下,分析操作中引发FormatException中.NET Framework 3.5和早期版本可能失败并引发OverflowException中.NET Framework 4。 下面的示例阐释了这两种方案。

string[] values = { "000000006", "12.12:12:12.12345678" };
foreach (string value in values)
{
   try {
      TimeSpan interval = TimeSpan.Parse(value);
      Console.WriteLine("{0} --> {1}", value, interval);
   }   
   catch (FormatException) {
      Console.WriteLine("{0}: Bad Format", value);
   }   
   catch (OverflowException) {
      Console.WriteLine("{0}: Overflow", value);
   }
}
// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
//       12.12:12:12.12345678: Bad Format      
// Output from .NET Framework 4:
//       000000006: Overflow
//       12.12:12:12.12345678: Overflow

下面的示例使用Parse方法将转换为字符串数组中的每个元素TimeSpan值。 它更改为克罗地亚语-克罗地亚 ("HR-HR") 和英语-美国境内 ("EN-US") 以说明当前系统区域性如何影响在分析操作的当前系统区域性。

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      string[] values = { "6", "6:12", "6:12:14", "6:12:14:45", 
                          "6.12:14:45", "6:12:14:45.3448", 
                          "6:12:14:45,3448", "6:34:14:45" };
      string[] cultureNames = { "hr-HR", "en-US"};

      // Change the current culture.
      foreach (string cultureName in cultureNames)
      {
         Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
         Console.WriteLine("Current Culture: {0}", 
                           Thread.CurrentThread.CurrentCulture.Name);
         foreach (string value in values)
         {
            try {
               TimeSpan ts = TimeSpan.Parse(value);
               Console.WriteLine("{0} --> {1}", value, ts.ToString("c"));
            }
            catch (FormatException) {
               Console.WriteLine("{0}: Bad Format", value);
            }   
            catch (OverflowException) {
               Console.WriteLine("{0}: Overflow", value);
            }
         } 
         Console.WriteLine();                                
      }
   }
}
// The example displays the following output:
//    Current Culture: hr-HR
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448: Bad Format
//    6:12:14:45,3448 --> 6.12:14:45.3448000
//    6:34:14:45: Overflow
//    
//    Current Culture: en-US
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448 --> 6.12:14:45.3448000
//    6:12:14:45,3448: Bad Format
//    6:34:14:45: Overflow

通用 Windows 平台
自 8 起可用
.NET Framework
自 1.1 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用
返回页首
显示: