我的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
我们怎么能实现这个目标?
答案 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));