在.net c#中创建自定义日期时间格式

本文关键字:日期 时间 格式 自定义 创建 net | 更新日期: 2023-09-27 18:19:10

这似乎是一件容易的事情,但仍然让我难住了。我想根据几个文件的创建日期向用户显示一个字符串列表。基本上,显示一个DateTimes列表。挑战是想要使用自定义格式(如5/6/13 12:01 PM),但我希望日期部分根据您的系统显示日期的方式显示不同(即。英国人会把这个日期显示为6/5/13)。

我想我可以只建立两个字符串(一个用于日期,一个用于时间),并确保它们的日期是区域格式化的,但是没有5/6/13的默认选项(只有5/6/2013):http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

接下来我希望也许DateTime.ToShortDateString()函数会工作,但它显示为5/6/2013以及。

我知道我可以使用一个完全自定义的格式:DateTime。ToString("M/d/yy h:mm tt"),但我不想将日期固定在前一个月。

我想如果我不能找出任何东西,然后我可以只是建立一个自定义日期时间为美国和欧洲,然后查询操作系统的日期时间他们显示在。但这似乎太过分了。任何想法吗?

在.net c#中创建自定义日期时间格式

您可以从当前区域性检索当前的ShortDate格式,更改它并将其用于ToString()

var currentDate = DateTime.Now;
var shortDateFormat = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern;
var newShortDateFormat = shortDateFormat.Replace("yyyy", "yy");
Console.WriteLine(currentDate.ToString(shortDateFormat));
Console.WriteLine(currentDate.ToString(newShortDateFormat));

System.Globalization.CultureInfo实现了IFormatProvider,因此您可以提供一个CultureInfo对象作为ToString方法的参数。

MSDN似乎有一个你想要的例子。