-4

About ボックスにいくつかのビルド情報を表示する次のコードがあります。

private void frmAbout_Load(object sender, EventArgs e)
{
    Version versionInfo =
        Assembly.GetExecutingAssembly().GetName().Version;
    lblVersion.Text = String.Format("Version {0}.{1}", 
        versionInfo.Major.ToString(), versionInfo.Minor.ToString());
    String versionStr = String.Format("{0}.{1}.{2}.{3}", 
        versionInfo.Major.ToString(), versionInfo.Minor.ToString(), 
        versionInfo.Build.ToString(), versionInfo.Revision.ToString());
    lblBuild.Text = String.Format("Build {0}", versionStr);

    DateTime startDate = new DateTime(2000, 1, 1); // The date from 
        whence the Build number is incremented (each day, not each 
        build; see http://stackoverflow.com/questions/27557023/how-can-   
        i-get-the-build-number-of-a-visual-studio-project-to-increment)
    int diffDays = versionInfo.Build;
    DateTime computedDate = startDate.AddDays(diffDays);
    lblLastBuilt.Text += computedDate.ToLongDateString();
}

今日は次のように表示されます。

ここに画像の説明を入力

「問題」は、画面の領域が限られていることと、「2015 年 2 月 4 日」などの日付が私にはマニアックに見えることです (私は「2015 年 2 月 4 日」が好きです)。

次のように、 ToLongDateString() から返された文字列を無作法にブルートフォースすることができます。

String lds = computedDate.ToLongDateString();
lds = // find leading 0 in date and strip it out or replace it with an empty string
lblLastBuilt += lds;

(設計時に lblLastBuilt が「最終ビルド」に設定されているため、「+=」を使用しています。

だから:日付文字列の「月の日」部分に先頭の0が表示されないようにするための、力ずくではない方法はありますか?

4

2 に答える 2

6

カスタム形式を使用します。(MMMM d, yyyy)

String lds = computedDate.ToString("MMMM d, yyyy", CultureInfo.InvariantCulture);

singledは、1 桁または 2 桁の日の部分を示します。日の部分が 10 未満の場合、先頭の代わりに 1 桁のみが0表示されます。それ以外の場合は、両方の数字が表示されます。

参照:カスタムの日付と時刻のフォーマット文字列

私は「2015 年 2 月 4 日」の方が好きです

編集:曜日の部分を見逃しました。それが必要かどうかはわかりませんが、必要な場合は、次ddddのようなカスタム形式で追加できます。

dddd, MMMM d, yyyy
于 2015-02-04T18:56:15.680 に答える