.NET Framework v 3.5を使用しており、タイムスパンを表す文字列をTimeSpan
オブジェクトに解析する必要があります。
問題は、コロンの代わりにドット区切り文字が使用されていることです...たとえば13.00
、または22.30
だから私はこれを交換.
する:
必要があるのか、それともこれを取得するためのよりクリーンな方法があるのか疑問に思っています。
を解析し、構造体であるそのプロパティをDateTime
使用します。TimeOfDay
TimeSpan
string s = "17.34";
var ts = DateTime.ParseExact(s, "HH.mm", CultureInfo.InvariantCulture).TimeOfDay;
更新された回答:
残念ながら、.NET 3ではカスタムTimeSpan
形式を使用できないため、手動で何かを行う必要があります。私はあなたが提案するようにただ取り替えをするでしょう。
元の回答(.NET 4以降にのみ適用):
カスタムフォーマット文字列TimeSpan.ParseExact
を指定して、を使用します。
var timeSpan = TimeSpan.ParseExact("11.35", "mm'.'ss", null);
string YourString = "01.35";
var hours = Int32.Parse(YourString.Split('.')[0]);
var minutes = Int32.Parse(YourString.Split('.')[1]);
var ts = new TimeSpan(hours, minutes, 0);
.Net 3.5の場合、DateTime.ParseExactを使用し、TimeOfDayプロパティを使用できます
string timestring = "12.30";
TimeSpan ts = DateTime.ParseExact(
timestring,
"HH.mm",
CultureInfo.InvariantCulture
).TimeOfDay;
TimeSpan形式がこの「9:00AM」のような12時間の時間形式である場合は、次のように形式文字列「h:mmtt」を指定してTimeSpan.ParseExactメソッドを使用します。
TimeSpan ts = DateTime.ParseExact("9:00 AM", "h:mm tt", CultureInfo.InvariantCulture).TimeOfDay;
ありがとう。
これを試してみてください(それは私のために働いた):
DateTime dt = Convert.ToDateTime(txtStartDate.Text).Add(DateTime.ParseExact(ddlStartTime.SelectedValue, "HH.mm", CultureInfo.InvariantCulture).TimeOfDay);
startdateは28/02/2018のような文字列になり、ddlstarttimeは13.00のようなHH形式になります