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,但我得到一个错误,日期不是一个正确的格式。我错过了什么?

c#日期格式转换错误

您的格式字符串与输入不匹配,并且您没有指定输出格式。

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"

相关文章: