如何将字符串转换为相同格式的日期时间(日期时间)?

时间:2014-05-22 04:53:27

标签: c# datetime

这里我想使用tostring将日期转换为字符串,但是当我将其转换回来时(字符串到日期时间),格式不同。

 static void Main(string[] args)
    {
        string cc = "2014/12/2";
        DateTime dt = DateTime.Parse(cc);
        Console.WriteLine(dt);
        Console.ReadLine();
    }

预期产量:     2014年12月2日 但我得到:     2014年12月2日

7 个答案:

答案 0 :(得分:1)

使用ToString实例转换回DateTime后提供的格式致电string

Console.WriteLine(dt.ToString(@"yyyy/M/d");

答案 1 :(得分:1)

string DateString = "06/20/1990";
IFormatProvider culture = new CultureInfo("en-US", true); 
DateTime dateVal = DateTime.ParseExact(DateString, "yyyy-MM-dd", culture);

这将是您的愿望输出

<强> udpated

string DateString = "20/06/1990";;
                IFormatProvider culture = new CultureInfo("en-US", true);
                DateTime dt = DateTime.ParseExact(DateString,"dd/mm/yyyy",culture);
                dt.ToString("yyyy-MM-dd");

答案 2 :(得分:1)

试试这个

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                              CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");

答案 3 :(得分:1)

使用它:

    string cc = "2014/12/2";
    DateTime dt = DateTime.Parse(cc);
    string str = dt.ToString("yyyy/M/dd"); // 2014/12/02 as you wanted
    Console.WriteLine(str);
    Console.ReadLine();

答案 4 :(得分:1)

你可以使用

string formattedDate= dt.ToString("yyyy/M/d");

对于反向,您可以使用

DateTime newDate = DateTime.ParseExact("2014/05/22", "yyyy/M/d", null);

因此,如果您的预期输出如下:2014/12/2 你必须使用

newDate.ToString( “YYYY / M / d”);

答案 5 :(得分:1)

正如您可以阅读hereDateTime.ToString()使用CurrentCulture来决定如何格式化其输出(类型CurrentCulture的{​​{1}}提供有关如何格式化的信息日期,货币,日历等。在C ++中称为 locale

因此,前面的答案建议的最简单的解决方案是使用CultureInfo的重载,它接受格式字符串,有效地覆盖ToString()信息:

CurrentCulture

有关日期时间格式的更多信息,请here

答案 6 :(得分:1)

这很简单,您只需要在显示期间使用日期模式

string cc = "2014/12/2";
string datePatt = @"yyyy/MM/d";
DateTime dt = Convert.ToDateTime(cc);
Console.WriteLine(dt.ToString(datePatt));