「9:00 AM」という文字列があります。C# で TimeSpan として真夜中からのオフセットを取得したいですか?
1110 次
4 に答える
5
9:00 AM
TimeSpan構造体は時間間隔を表しているため、リンゴをオレンジに変換しようとしています。
于 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 に答える