我想要一个字符串值来转换日期(yyyy-MM-dd
)格式。
下面是我尝试的代码,但它给了我一个例外。
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date ,"yyyy-MM-dd",
CultureInfo.InvariantCulture);
正如您所看到的,DateTime
期望我的字符串遵循"2014-10-21"
模式。但是我无法修改我的字符串。是否可以将字符串日期"20141021"
转换为yyyy-MM-dd
格式?
答案 0 :(得分:4)
如何将日期格式更改为字符串的实际格式? ParseExact
要求您输入格式的完全表示。
因此,解决方案是将yyyy-MM-dd
更改为yyyyMMdd
。
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
答案 1 :(得分:2)
您需要将字符串解析为:
DateTime dt=DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);
答案 2 :(得分:1)
当您尝试格式化日期时间时,程序将查找" - "你做的字符串中的符号。
您可以使用" - "解决此问题。你的字符串中的符号(在我看来这是最好的解决方案)。 它看起来像这样:
string date = "2014-10-21";
或者您可以删除" - "
的符号DateTime.ParseExact(date ,"yyyy-MM-dd"
一部分。
所以它看起来像这样
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date ,"yyyyMMdd",
System.Globalization.CultureInfo.InvariantCulture);
答案 3 :(得分:1)
您可以使用以下代码....
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
string finaldate = myDate.ToString("yyyy-MM-dd");
答案 4 :(得分:1)
我知道为时已晚,但自 OP 后,用户需要一些解释..
我想要一个字符串值来转换日期(yyyy-MM-dd)格式。下边是 我试过的代码,但它给了我一个例外。
是的,因为来自DateTime.ParseExact
将指定的日期和时间字符串表示形式转换为它 DateTime等效。 字符串表示的格式必须 完全匹配指定的格式或抛出异常。
在你的情况下,他们不是。 20141021
与yyyy-MM-dd
格式不同。它必须是yyyyMMdd
格式,与您的字符串完全匹配。
正如你所看到的,DateTime希望我的字符串遵循" 2014-10-21" 图案。但是我无法修改我的字符串
但您始终可以将格式修改为yyyyMMdd
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date,"yyyyMMdd",
CultureInfo.InvariantCulture);
是否可以转换字符串日期:" 20141021"到yyyy-MM-dd 格式?
没有这样的字符串日期。有一个string
并且有一个DateTime
。 20141021
是string
,yyyy-MM-dd
是字符串格式,您要将其字符串解析为DateTime
。
DateTime
没有任何隐式格式。它只有日期和时间价值。 String
的{{1}}表示可以包含格式。
答案 5 :(得分:0)
如果绝对需要将20141021
格式化为2014-10-21
,您可以执行以下操作:
string date = "20141021";
string year = date.Substring(0, 4);
string month = date.Substring(4, 2);
string day = date.Substring(6, 2);
string formatted = year + "-" + month + "-" + day;
DateTime myDate = DateTime.ParseExact(formatted,"yyyy-MM-dd",
System.Globalization.CultureInfo.InvariantCulture);
否则,上面提供的答案将为您提供您正在寻找的内容。