c#日期格式转换错误
本文关键字:错误 转换 格式 日期 | 更新日期: 2023-09-27 18:10:04
这是我的代码。
dateString = "6/29/2014";
format = "yy-mm-dd";
try
{
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
Console.WriteLine("{0} is not in the correct format.", dateString);
}
我想转换我的日期6/29/2014到2014-06-29,但我得到一个错误,日期不是一个正确的格式。我错过了什么?
您的格式字符串与输入不匹配,并且您没有指定输出格式。
var dateString = "6/29/2014";
var format = "M/dd/yyyy"; // adjusted format to match input
try
{
var result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.",
dateString, result.ToString("yyyy-MM-dd")); // specify output format
}
catch (FormatException)
{
Console.WriteLine("{0} is not in the correct format.", dateString);
}
输出:6/29/2014转换为2014-06-29
几件事
你想传入你来自的格式,使它成为一个日期对象。你所寻找的"转变"来自另一端。此外,您没有传入MM/dd/yy
,该日期字符串实际上是M/dd/yyyy
,因为它不包括月份中的前导零,并且它是一个4位数的年份。
下面是一个工作示例。
string dateString = "6/29/2014";
string format = "M/dd/yyyy";
try
{
DateTime result = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString("yyyy-MM-dd"));
}
catch (FormatException)
{
Console.WriteLine("{0} is not in the correct format.", dateString);
}
请注意,我将新格式传递给ToString
函数。
您需要首先解析日期,然后对其进行字符串化。
var asDate = DateTime.Parse(dateString);
var result = asDate.ToString("yy-MM-dd");
还要注意,. net中的"mm"
给了您几分钟。您需要每月使用"MM"