如何使用CultureInfo生成本地化的日期字符串

问题描述 投票:24回答:2

我有以下代码,以en-us格式生成日期字符串。我想传入LCID(或本地化语言的等效值)以生成日期字符串的本地化版本。我将如何完成?

public static string ConvertDateTimeToDate(string dateTimeString) {

    CultureInfo culture = CultureInfo.InvariantCulture;
    DateTime dt = DateTime.MinValue;

    if (DateTime.TryParse(dateTimeString, out dt))
    {
        return dt.ToShortDateString();
    }
    return dateTimeString;
  }
c# .net datetime cultureinfo
2个回答
48
投票

您可以使用toString函数的第二个参数,并使用您需要的任何语言/文化...

根据MSDN,您可以使用“ d”格式而不是[C0 ...

所以基本上像这样的东西以澳大利亚英语的形式返回:

ToShortDateString

您可以修改您的方法以将语言和文化作为参数包括在内>

CultureInfo enAU = new CultureInfo("en-AU");
dt.ToString("d", enAU);

编辑

如果您需要根据特定的语言/文化来分析字符串,您可能还需要查看public static string ConvertDateTimeToDate(string dateTimeString, String langCulture) { CultureInfo culture = new CultureInfo(langCulture); DateTime dt = DateTime.MinValue; if (DateTime.TryParse(dateTimeString, out dt)) { return dt.ToString("d",culture); } return dateTimeString; } ...

6
投票

使用重载overloaded tryParse method而不是ToString()方法。提供ToShortDateString()

© www.soinside.com 2019 - 2024. All rights reserved.