2

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

我想我可以只构建两个字符串(一个用于日期,一个用于时间)并确保它们的日期是区域格式的,但是 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") 但我不想将日期固定为前一个月。

我想如果我无法弄清楚任何事情,那么我可以为美国和欧洲建立一个自定义日期时间,然后向操作系统查询它们显示的日期时间。但这似乎真的过分了。有什么想法吗?

4

2 回答 2

1

您可以从当前文化中检索当前 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));
于 2013-06-19T20:02:23.810 回答
0

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

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

于 2013-06-19T19:41:30.250 回答