У меня есть этот код, который показывает некоторую информацию сборки в качестве О коробке:Каков самый чистый способ лишить ведущие 0s от дневной части дат?
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();
}
Он появляется, как это сегодня:
«Проблема» является то, что экран недвижимость ограничена, и такие даты, как «4 февраля 2015 года», выглядят мне неистово (я предпочитаю «4 февраля 2015 года»).
я мог kludgily грубой силой строки, возвращаемой из 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 установлен на «Последний построен» на время разработки.
Итак: есть менее грубый forcish способ предотвратить ведущие 0s появляться в «день месяца» части строки даты
DateTime имеет много существующих (например, использование ToLongDateString()) и пользовательское форматирование. Вы пробовали кого-нибудь из них, чтобы узнать, соответствует ли это вашим потребностям? – Quintium
Вы также можете избавиться от дня недели, пока вы на нем! –
Я хочу день недели. –