我正在从视图中以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可识别的格式?
答案 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);