我的系统时间格式为dd-MMM-yy
(02-Dec-16)。我想将其转换为"yyyy/MM/dd"
的格式。我基本上一直在玩我的系统提供的所有其他日期时间格式,这是我发现的解析语句适用于所有这些格式(除此之外) -
CultureInfo provider = CultureInfo.InvariantCulture;
string date_format = "yyyy/MM/dd HH:mm:ss tt";
DateTime now_value = DateTime.ParseExact(DateTime.Now.ToString(date_format), date_format, provider);
return now_value.ToString(date_format);
但这对上述dd-MMM-yy格式不起作用。有人可以告诉我这里我做错了什么吗?
(补充工具栏 - 我是否可以使用更有效的方式在上面编写代码片段?)
答案 0 :(得分:2)
您不需要将DateTime转换为字符串,然后转换回DateTime并再次返回字符串,如果您有DateTime输入,只需调用ToString,格式如下
string dt =DateTime.Now.ToString("yyyy/MMM/dd", CultureInfo.InvariantCulture);
为您的例子:
DateTime now_value = DateTime.ParseExact("02-Dec-16", "dd-MMM-yy", System.Globalization.CultureInfo.InvariantCulture);
return now_value.ToString("yyyy/MM/dd");
答案 1 :(得分:1)
试试这个:
string date_format = "yyyy-MMM-dd";
string date_now = DateTime.Now.ToString(date_format,CultureInfo.CreateSpecificCulture("en-US"));
return date_now;
即使这也应该有效:
string date_format = "yyyy-MMM-dd";
string date_now = DateTime.Now.ToString(date_format);
return date_now;
答案 2 :(得分:0)
我认为最好的方法是为多种日期格式创建扩展方法,
var inputDate = "02-Dec-2016";
string[] availaible_input_date_format = { "dd-MMM-yyyy", "dd/MMM/yyyy" }; // add as many formats availible
var date_format = "yyyy/MMM/dd";
DateTime outputDate;
DateTime.TryParseExact(inputDate, availaible_input_date_format, null, DateTimeStyles.None, out outputDate);
Console.WriteLine(outputDate.ToString(date_format));
答案 3 :(得分:0)
你可以试试这个:
A