私は。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:00 AM」のような12時間形式の場合、次のように、形式文字列「h:mm tt」で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形式です。