将字符串转换为日期格式
本文关键字:日期 格式 转换 字符串 | 更新日期: 2023-09-27 18:30:05
我想要一个字符串值来转换日期(yyyy-MM-dd
(格式。下面是我尝试过的代码,但它给了我一个例外。
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date ,"yyyy-MM-dd",
CultureInfo.InvariantCulture);
如您所见,DateTime
希望我的字符串遵循"2014-10-21"
模式。但我无法修改我的字符串。是否可以将字符串日期:"20141021"
转换为yyyy-MM-dd
格式?
将日期格式更改为字符串的实际格式怎么样? ParseExact
要求精确表示您输入的格式。
所以解决方案是将yyyy-MM-dd
更改为 yyyyMMdd
.
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
字符串解析为:
DateTime dt=DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);
当您尝试格式化日期时间时,程序将在您创建的字符串中查找"-"符号。
您可以通过在字符串中使用"-"符号来解决此问题(在我看来这是最好的解决方案(。它将看起来像这样:
string date = "2014-10-21";
或者您可以删除
DateTime.ParseExact(date ,"yyyy-MM-dd"
.part。
所以它会看起来像这样
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date ,"yyyyMMdd",
System.Globalization.CultureInfo.InvariantCulture);
以下代码....
string date = "20141021";
DateTime myDate = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
string finaldate = myDate.ToString("yyyy-MM-dd");
时已晚,但由于OP,用户想要一些解释。
我想要一个字符串值来转换日期 (yyyy-MM-dd( 格式。以下是 我尝试的代码,但它给了我一个例外。
是的,因为从DateTime.ParseExact
将日期和时间的指定字符串表示形式转换为其 日期时间等效。字符串表示形式的格式必须 完全匹配指定的格式,否则将引发异常。
在您的情况下,它们不是。 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
没有任何隐式格式。它只有日期和时间值。 DateTime
的String
表示形式可以具有格式。
如果绝对需要将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);
否则,上面提供的答案将为您提供所需的内容。