2017-01-11 17 views
-2

DateTime形式を24時間に設定しようとしています。もともと私は12時間表記の文字列を持っています。私が見つけたすべての解決策はDateTimeを文字列に変換しています。C#24時間形式の日付時刻オブジェクトありません

string dateString = "Mon 16 Jun 8:30 AM 2008"; // <-- Valid 
     string format = "dd/MM/yyyy HH:mm"; 
     DateTime dateTime; 
     if (DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture, 
      DateTimeStyles.RoundtripKind, out dateTime)) 
     { 
      DateTime dateIn24 = dateTime;// dateIn24 should be in 24 hour format 
     } 

web.configには何もできますか?次のように:

<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB"/> 

私は答え

Thread.CurrentThread.CurrentCulture =新しいのCultureInfo( "EN-GB")を得ました。 のDateTimeインスタンスは、情報だけが含まれており、時間プロパティは、0からの整数である、デフォルトで そのEN-US 12時間形式ならば、それはシステムの日付時刻の設定に基づいてEN-USになります

+0

http://stackoverflow.com/questions/8337625/convert-am-pm-time-to-24-hours-format –

+0

私はそれを通過しました。彼らは日付を文字列に変換しています..私は日付時間オブジェクトとして出力する必要があります – Lijo

+1

文字列として印刷しない限り、DateTimeにはフォーマットがありません。そうでなければ、それはすべてのインスタンスのための同じ "フォーマット"である内部表現を持っています – pinkfloydx33

答えて

2

23、MSDNのドキュメントによると:タイプ

プロパティ値:可能System.Int32

時間のコンポーネントは、あなたがそれを書式設定についてを話しているなら、あなたは次のように、文字列に変換する必要があり、0〜23

https://msdn.microsoft.com/library/system.datetime.hour(v=vs.110).aspx

の間の値として表現しましたコメントで述べた。

0

私が知る限り、24時間形式は、DateTimeがどのように解析され、保存されるのかではなく、書式設定の問題ではありません。あなたはif - ブロック、あなたのフォーマット文字列でHH以来

var dateStringWith24Hours = dateTime.ToString(dateString); 

で正しくフォーマットされた日付文字列を取得することができます(私はLinqPadでyoureのdateStringを解析に成功していない)に入ることを考えると、あなたが好きなことを意味し時間を24時間にフォーマットします。

+0

しかし、私は日付の時刻形式を変更する必要があります – Lijo

+0

これは私が話していることです。内部的には 'DateTime'は常に24時間表記です。 12時間形式は、 'DateTime'を文字列に変換する場合にのみ関係します。多分あなたは12時間フォーマットがなぜ必要なのか*どのように*必要なのかを洗い出して解決策を提案することができます。 –

+0

デフォルトでは、時刻は12時間形式です。私は24時間形式で必要です – Lijo

関連する問題