将日期时间从“MMM-yyyy”格式转换为“dd-MM-yyyy”或“yyyy-MM-dd”格式

5

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

我已经在stackoverflow上搜索了日期转换问题,但那些都是关于三个部分的日期转换问题。如果我尝试添加dd部分解析该字符串(例如01-Apr-2019),则会显示“未能将字符串识别为有效的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可识别的格式?


2
MMM-yyyy 将会 解析 "Apr-2019",所以不清楚你的问题在哪里。 - Jeroen Mostert
我之前不知道“MMM-yyyy”格式。感谢@Jeroen Mostert指出。 - quasar
我感到困惑,因为你在问题本身中提到了这种格式。当有疑问时,试一试就知道了。 :-) - Jeroen Mostert
4个回答

6

为什么需要转换字符串?

只需在所需格式上进行解析即可:

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

这将把日期设置为该月的第一天。


4

使用

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

这将无论如何为您提供本月的第一天。

1

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

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

0

我已经尝试了下面的代码,它对我有效。你能试试这个吗? string strDt = "Sep-2019"; DateTime dt = Convert.ToDateTime(strDt).AddDays(0.0);


字符串 strDt = "Sep-2019"; DateTime dt = Convert.ToDateTime(strDt).AddDays(0.0); string str = dt.ToString("dd-MM-yyyy"); - Ravi Kumar Kasim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接