DateTime从MMM-yyyy转换为dd-MM-yyyy或yyyy-MM-dd

时间:2019-08-19 10:02:35

标签: c# asp.net-mvc date

我正在从视图中以MMM-yyyy格式提交日期值,即“ Apr-2019”作为字符串。我需要将字符串值转换为.Net支持的日期格式,例如dd-MM-yyyy或yyyy-MM-dd。 dd是月份的第一天。

我已经搜索过stackoverflow datetime转换问题,但是所有这些都描述了三部分日期转换问题。如果我尝试解析添加dd部分的字符串(即2019年4月1日),则会显示-“字符串未被识别为有效的DateTime”。但是,如果我在该字符串中使用MMM的数值,则该字符串是可识别的,并且可以使用ParseExact-

//string dt = "01-Apr-2019";//Not recognizable string format
string dt = "01-04-2019";//Recognizable string format
DateTime newDt = DateTime.ParseExact(dt, "dd-MM-yyyy", CultureInfo.InvariantCulture);

因此,.Net中是否有任何内置方法/类可用于转换“ Apr-2019”格式值并实现我的dd-MM-yyyy或yyyy-MM-dd或任何其他.Net可识别的格式?

4 个答案:

答案 0 :(得分:5)

为什么需要转换字符串?

只需按照您想要的格式进行准确的解析:

DateTime newDt = DateTime.ParseExact(dt, "MMM-yyyy", CultureInfo.InvariantCulture);

它将日期设置为每月的第一天

答案 1 :(得分:3)

使用

DateTime.ParseExact(dt, "MMM-yyyy", CultureInfo.InvariantCulture)

无论如何,这将为您提供每月的第一个月。

答案 2 :(得分:0)

OP也希望将字符串转换为日期。使用以下代码,可以使用格式dd-MMM-yyyy

string dt = "01-Apr-2019";
DateTime newDt = DateTime.ParseExact(dt, "dd-MMM-yyyy", CultureInfo.InvariantCulture);

答案 3 :(得分:0)

我尝试了下面的代码,它对我有用。你能试试这个吗? 字符串strDt =“ Sep-2019”;  DateTime dt = Convert.ToDateTime(strDt).AddDays(0.0);