0

ゼロを1桁の月と日に保つ方法を探していますが、現在行っている方法は機能していません。何が起こったのか、フォーマットが正しくないのかについての洞察を探しています.

現在、日付を特定の形式にフォーマットすることだけを考えています。これが私のコードです。

dateFormat = Today.ToString("MM/dd/yyyy")

ただし、この値は 2013 年 2 月 13 日の値ではなく、先頭のゼロをすべて削除した #2/13/2013# であると予想していました。ここで何が起こっているのですか?なぜそれは # を与え、先頭のゼロをすべて削除するのですか?

4

3 に答える 3

3

関連する質問は次のとおりdateFormatです。Date(または)の場合DateTime、フォーマットされた文字列は に変換されDate、フォーマットは失われます。書式設定は、書式設定の結果を に割り当てた場合にのみ機能しますString。このDate型にはフォーマットは保存されません。一般に、フォーマットは文字列にのみ適用されます。

Dim dateFormat As String
dateFormat = Today.ToString("MM/dd/yyyy")

: ある場合Option Strict Off、VB は自動的に一致しない型を変換しようとします。あなたのコードでは、書式設定された文字列は、型のDate場合に自動的に変換されます。したがって、潜在的なプログラミング エラーを隠すため、危険です。を使用することを強くお勧めします。これは、ソース ファイルごと、または の下のプロジェクト プロパティで行うことができます。dateFormatDateOption Strict OffOption Strict OnCompile > Option Strict

これを行うと、一部の自動変換が失われ、それらの変換を明示的に指定する必要がありますが、コードのセキュリティが向上します。

メニューで新しいプロジェクトのデフォルトとしてこのオプションを設定してTools > Optionsから、 に移動することもできますProjects and Solutions > VB Defaults。(少なくともVS 2008では)。私はいつも持ってる:

    オプションの明示的オン
    オプション厳密オン
    オプション比較バイナリ
    オプション推論オン
于 2013-02-13T17:59:01.033 に答える
2

dateFormat を string として宣言します。

Dim dateFormat as string = DateTime.Today.ToString("MM/dd/yyyy")

「ハッシュ」について。この答えはそれを説明しています。

DateTime 自体には実際にはハッシュが含まれておらず、通常のフォーマット文字列もハッシュを生成しません。

于 2013-02-13T17:33:49.963 に答える
0

VB.NET日付フォーマットの適切な方法を使用できます

    Dim DateFormat As DateTime = Now
    Console.WriteLine(Format(DateFormat, "Short Date"))
于 2013-02-13T17:32:09.980 に答える