假设我有一个日期字符串输入,即“30.03.2016”(即假设它可能是任何语言格式),但我目前的文化是美国。我想将输入转换为Windows保存的语言环境设置文化。我使用以下格式进行转换,但是给了我无效的日期时间。
var myDateTimeValue = "30.03.2015";
DateTime myDateTime = DateTime.Parse(myDateTimeValue);
var dateingddmmyy = myDateTime.ToString(new CultureInfo("sv-SE"));
Console.Write(dateingddmmyy);
请告诉我如何将任何类型的日期字符串转换为当前的文化格式。
答案 0 :(得分:1)
源日期可以是:
我建议您退后一步,详细了解您要解决的问题。也许你不需要从任何数据格式转换,也许有办法提供这样的。
答案 1 :(得分:0)
下面我已经解决了我的问题:
string[] formats = {"M/d/yyyy", "MM/dd/yyyy",
"d/M/yyyy", "dd/MM/yyyy",
"yyyy/M/d", "yyyy/MM/dd",
"M-d-yyyy", "MM-dd-yyyy",
"d-M-yyyy", "dd-MM-yyyy",
"yyyy-M-d", "yyyy-MM-dd",
"M.d.yyyy", "MM.dd.yyyy",
"d.M.yyyy", "dd.MM.yyyy",
"yyyy.M.d", "yyyy.MM.dd",
"M,d,yyyy", "MM,dd,yyyy",
"d,M,yyyy", "dd,MM,yyyy",
"yyyy,M,d", "yyyy,MM,dd",
"M d yyyy", "MM dd yyyy",
"d M yyyy", "dd MM yyyy",
"yyyy M d", "yyyy MM dd"
};
DateTime dateValue;
foreach (string dateStringFormat in formats)
{
if (DateTime.TryParseExact(strDateTime, dateStringFormat,CultureInfo.CurrentCulture,DateTimeStyles.None,
out dateValue))
{
return dateValue.ToShortDateString();
}
}