46

TextBox に時間と分のみを表示したい

var test = dataRow.Field<TimeSpan>("fstart").ToString();  
//test ="08:00:00"  
var tb = (TextBox) gridViewRow.Cells[2].FindControl("fstart");
tb.Text = test;

時間と分だけを表示する方法"hh.mm"

4

7 に答える 7

93

データを TimeSpan に変換してから、次の形式を使用する必要があります。"hh\:mm"

string test ="08:00:00";
TimeSpan ts = TimeSpan.Parse(test);
Console.Write(ts.ToString(@"hh\:mm"));

あなたの場合:

var test = dataRow.Field<TimeSpan>("fstart").ToString(@"hh\:mm"));

コロンをエスケープすることを忘れないでください:

以下が表示される場合があります:カスタム TimeSpan フォーマット文字列

于 2012-10-01T12:29:04.213 に答える
15

hh.mm.ssからに変換する必要はありませんhh.mmTimeSpanティック数 (1 ティック == 100 ナノ秒) として格納され、固有の形式はありません。あなたがしなければならないことは、 をTimeSpan人間が読める文字列に変換することです! これにはフォーマットが含まれます。形式を明示的に指定しない場合、デフォルトの形式が使用されます。この場合hh.mm.ss

string formatted = timespan.ToString(@"hh\.mm");

注: この のオーバーロードはToString.NET 4.0 以降に存在します。日付と時刻のプレースホルダー区切り記号はサポートされていません! したがって、それらを (エスケープされた) 文字列リテラルとして含める必要があります。

文字列をフォーマットする通常の方法は、奇妙な理由で機能しないようです (.NET 3.5 でテスト済み)。(区切り記号をエスケープするかどうかは関係ありません):

var timespan = TimeSpan.FromSeconds(1234);
string formatted = String.Format(@"{0:hh\.mm}", timespan); // ==> 00:20:34

ただし、次のように文字列を作成できます

string formatted =
    String.Format("{0:00}.{1:00}", Math.Floor(timespan.TotalHours), timespan.Minutes);

または、VS2015 / C# 6.0 以降では、文字列補間を使用します。

string formatted = $@"{timespan:hh\:mm}";
于 2012-10-01T12:38:49.173 に答える
7

TimeSpanメソッドを使用できます。

ToString("hh':'mm")
// or
ToString(@"hh\:mm")

また、ここで利用可能なすべての形式を確認してくださいhttp://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2012-10-01T12:26:55.007 に答える
2
var test = dataRow.Field<TimeSpan>("fstart").ToString("hh.mm");  
//test ="08:00"  
var tb = (TextBox) gridViewRow.Cells[2].FindControl("fstart");
tb.Text = test;
于 2012-10-01T12:27:21.193 に答える
1

24 時間以上の場合、前のソリューションは実行されません。時間が非常に長い場合は、このソリューションを試してください。

int minutes = 159000;
TimeSpan t = new TimeSpan(0, minutes, 0);

String HOURS = Math.Round(t.TotalHours, 0).ToString();
if (HOURS.Length==1)
{
    HOURS = "0"+HOURS;
}


String MINUTES = t.Minutes.ToString();
if (MINUTES.Length == 1)
{
    MINUTES = "0" + MINUTES;
}


String RESULT = HOURS + ":" + MINUTES;
于 2016-12-20T08:43:17.947 に答える