0

私は文字列を持っています10/13/2016 21:42

Dim ETAtime1 As String = Convert.ToDateTime("10/13/2016 21:42").ToString("MM/dd/yyyy HH:mm")
'result is 10/13/2016 21:42

結果を10/13/2016 21:42上記の文字列のように (24 時間形式) にしたい。しかし、なぜ、以下のように変換した後、12 時間形式になるのでしょうか。

 Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)
'result is 10/13/2016 09:42

どうすれば21:42ではなく09:42になってしまうのでしょうか?文字列ではなく DateTime 型のデータが必要です。

4

3 に答える 3

2

DateTime オブジェクトには「形式」がありません。実際の日付と時刻を保持しているだけだと考えてください。その情報を DateTime オブジェクトに格納することで、数学/論理演算を実行できます。DateTime 時間をユーザーにどのように表示するかは、あなた次第です。ToString メソッドは、渡す形式文字列に応じて、これらの時間形式のいずれかを表示できます。たとえば、次のようになります。

    Dim ETAtime1 As String = Convert.ToDateTime("10/13/2016 21:42").ToString("MM/dd/yyyy HH:mm")
    Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)

    MsgBox(ETAtime.ToString("HH:mm"))
    'Outputs 21:42
    MsgBox(ETAtime.ToString("h:mm"))
    'Outputs 9:42
于 2016-10-13T15:24:05.813 に答える
1

この行は文字列10/13/2016 21:42を取得し、提供された形式を使用して解析します。これは、日付文字列が and のようなあいまいな形式である場合に役立ちますが、06/05/2016これは June 5 thまたは May 6 thのいずれかを表すことができますが、私の例では日/月、5 月 6 日であることわかっています。詳細については、DateTime.ParseExactを参照してください。

Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)

このメソッドの結果は、文字列ではなくDateTimeです。

'result is 10/13/2016 09:42

AM/PMしたがって、結果は有効ですが、検査方法によって異なりますが、インジケーターはありません。それはすでにDateTimeです。ETAtime をさらに操作すると、これを証明できます。

Dim ETAtime1 As String = Convert.ToDateTime("10/13/2016 21:42").ToString("MM/dd/yyyy HH:mm")
Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)
Console.WriteLine("{0:MM/dd/yyyy HH:mm}", ETAtime)
Console.WriteLine("{0:MM/dd/yyyy hh:mm}", ETAtime)
Console.WriteLine("{0:MM/dd/yyyy hh:mm tt}", ETAtime)

出力

2016/10/13 21:42
2016/10/13 09:42 2016/10/13
09:42 午後

コードに問題はありません。

私のIDE(Visual Studio 2012)は、デバッグ時にこの形式で日付を表示します10/13/2016 09:42 PM. 私はアメリカにいます。表示される内容は、地域の設定に基づいている必要があります。あなたのスクリーンショットを見るのは興味深いでしょう。

ここに画像の説明を入力

于 2016-10-13T15:26:46.083 に答える
0

これを試して :

      dddd, MMMM d, yyyy HH:mm:ss tt"
于 2016-10-13T15:03:13.077 に答える