我们如何以所需格式安排DateTime值?

时间:2016-05-25 07:26:12

标签: c# asp.net datetime

我的dd/MM/yyyy格式中的日期值目前为string dateTimeValue格式,string dtFormat变量中的格式为格式,格式基于差异国家/地区的语言。

string dateTimeValue  //contains date value currently in dd/MM/yyyy format
string dtFormat = GetDateFormat(langID);

现在基于dtFormat我要转换dateTimeValue。 我试过这个:

string FrmtddateTimeValue = Convert.ToDateTime(dateTimeValue).ToString(dtFormat); 

但最终出现了错误:

  

字符串未被识别为有效的DateTime

我们怎么能实现这个目标?

2 个答案:

答案 0 :(得分:2)

您可以尝试ParseExact以便在解析时使用所需的格式("dd/MM/yyyy"):

FrmtddateTimeValue = DateTime
  .ParseExact(dateTimeValue, "dd/MM/yyyy", CultureInfo.InvariantCulture)
  .ToString(dtFormat, CultureInfo.InvariantCulture);

如果

  

格式基于 差异国家/地区的语言

您必须在代码中提供实际CultureInfo(而不是CultureInfo.InvariantCulture)。

编辑:为了找到合适的文化,您可以使用 Linq 而不是CultureInfo.GetCultures,例如

  String country = "Sri Lanka";

  var culture = CultureInfo.GetCultures(CultureTypes.AllCultures)
    .Where(c => c.EnglishName.Contains(country)) // you may want more elaborated filter
    .FirstOrDefault();

  // si-LK
  Console.Write(culture.ToString());

答案 1 :(得分:1)

试试这种方式

FrmtddateTimeValue = Convert.ToDateTime(dateTimeValue.ToString(dtFormat));