0

「9:00 AM」という文字列があります。C# で TimeSpan として真夜中からのオフセットを取得したいですか?

4

4 に答える 4

5

9:00 AMTimeSpan構造体は時間間隔を表しているため、リンゴをオレンジに変換しようとしています。

于 2009-10-10T13:29:50.723 に答える
3

期間?タイムスパンは単なる期間です。「AM」は、これが特定の時間であることを示しているため、これをタイムスパンにすることはできません。または、「AM」なしで「9:00」を解析し、結果として9時間のタイムスパンを取得しますか?

@あなたのコメント:

これを行う方法を使用できます。簡単な実装例を次に示します(Convert.ToInt32()などよりも優れた入力検証を追加したり、より優れた変換メソッドを使用したりする必要があります)。

public static TimeSpan GetTimeSpanFormString(string strString)
{
    strString = strString.Trim();
    string[] strParts = strString.Split(':', ' ');

    int intHours, intMinutes;

    if (strParts.Length != 3)
        throw new ArgumentException("The string is not a valid timespan");

    intHours = strParts[2].ToUpper() == "PM" ? Convert.ToInt32(strParts[0]) + 12 : Convert.ToInt32(strParts[0]);
    intMinutes = Convert.ToInt32(strParts[1]);

    return new TimeSpan(intHours, intMinutes, 0);
}
于 2009-10-10T13:31:48.880 に答える
2

真夜中からのオフセットが必要な場合は、次を使用できます。

  DateTime dateTime = DateTime.ParseExact( strValue, "h:mm tt" );
  TimeSpan offset = dateTime - DateTime.Today;
于 2009-10-10T13:36:39.757 に答える
0
TimeSpan.TryParse(yourString, out yourTimeSpan);
于 2009-10-10T13:28:10.087 に答える