0

この 12:40 PM のような時間形式を受け入れるテキストボックスがありますが、基本的に PM または AM なしで、この 12:40:00 のような時間形式に変換したいと考えています。これが私がこれまでに持っているものです:

string StartTime = ((TextBox)TestDV.FindControl("txtBST")).Text.ToString();

ありがとう

4

3 に答える 3

8

1 つのオプションは、解析してDateTimeから文字列に戻すことです。

string s = "12:40 PM";

DateTime dt = DateTime.Parse(s);

string s2 = dt.ToString("HH:mm:ss");  // 12:40:00

DateTimeただし、ほとんどの操作は、 の文字列表現よりもうまく機能することに注意してくださいDateTime

于 2013-04-30T18:10:02.650 に答える
5

まず、それを に解析してからDateTimeフォーマットする必要があります。入力形式は次のようhh:mm ttで、出力形式はHH:mm:ss. したがって、次のようになります。

string input = "12:40 PM"
DateTime dateTime = DateTime.ParseExact(input, "hh:mm tt",
                                        CultureInfo.InvariantCulture);
string output = dateTime.ToString("HH:mm:ss", CultureInfo.InvariantCulture);

ご了承ください:

  • DateTime.ParseExact解析が失敗した場合に例外をスローするものを使用しました。使用したい場合がありDateTime.TryParseExactます(状況によって異なります)
  • ここでは、両方の操作にインバリアント カルチャを使用しました。それがあなたのシナリオに合っているかどうかはわかりません。
  • を使用しましたが、 「1 PM」と「01 PM」のどちらを使用hh:mmします?h:mm
  • 秒を解析しないので、その部分は常に0になります...大丈夫ですか?
于 2013-04-30T18:11:05.433 に答える