这里我想使用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日
答案 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)
正如您可以阅读here,DateTime.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));