根据用户localId显示短日期

时间:2014-12-08 13:27:15

标签: c# cultureinfo

我需要根据用户LocaleId提供30-01(1月30日)的短日期。必须根据本地用户正确显示日期。预期可能的日期格式排列的例子有:30-01,01-30,30 / 01,01 / 30等。

注1:我不希望年份出现在日期字符串中。 注2:您可以假设我们已经知道LocalId。 注3:MyDate.ToString(“dd / MM”)不是我正在寻找的答案,因为它不考虑本地。

1 个答案:

答案 0 :(得分:2)

“MyDate.ToString(”dd / MM“)不是我正在寻找的答案,因为它不考虑本地”

实际上确实考虑了/ is a custom format specifier以来的本地日期分隔符。

DateTime dt = new DateTime(2014, 01, 30);
string result = dt.ToString("dd/MM"); // 30.01. for example in germany

但是既然你想要正确的订单(月/日或反之亦然),这是我想到的最好的:

DateTime dt = new DateTime(2014, 01, 30);
var dfi = DateTimeFormatInfo.CurrentInfo;
var patternWithoutYear = dfi.ShortDatePattern
    .Split(new[]{ dfi.DateSeparator }, StringSplitOptions.None)
    .Where(token => !token.Contains("yy"));
string result = dt.ToString(string.Join(dfi.DateSeparator, patternWithoutYear));