-2

C#では、午後1時50分など、非軍事形式の文字列が12時間あります。13:50に変換したいです。これをC#またはSQLでどのように実現できますか?この問題のプロシージャを作成することを考えましたが、C#で関数を見つけることができると考えています。

SQL 1:50 pm、8:46pmの単純なVarchar列。

4

4 に答える 4

4

DateTime.ParseExactC# では、フォーマット文字列を使用できます。

DateTime.ParseExact("1:50 PM", "h:mm tt", CultureInfo.InvariantCulture).ToString("HH:mm");

デフォルトでToString()はローカル表現 (AM/PM の場合もあります) が表示されるため、明示的な書式文字列"HH:mm"を使用して 24 時間形式に変換する必要があります。内部的には、DateTimeオブジェクトは AM/PM を気にしないことに注意してください。これは、文字列に変換するときにのみ有効になるため、デバッガーではDateTimeオブジェクトが"1:50 PM"(ロケールによっては) として表示される場合があります。

于 2012-12-14T08:31:21.180 に答える
2

よくわかりませんが、このようにしてみてください

DateTime dt;
bool val= DateTime.TryParse("01:00 PM", out dt);
if(val)
dt.ToString("HH:mm");

これがうまくいった場合は、@ Botz3000 の回答にある文化オプションを試してください。

于 2012-12-14T08:26:53.353 に答える
0

SQL SERVER 2008を使用すると、次のようなことを試すことができます。

SELECT CAST('1:50 pm' AS TIME)
于 2012-12-14T08:27:42.010 に答える
0

すでに持っている日付の表現だけについて話している場合は、内のさまざまな利用可能なDateTime形式でそれをだますことができますC#

于 2012-12-14T08:27:44.577 に答える