C# 如何将dd/MM/YYYY格式的字符串日期转换为YYYY-MM-dd-datetime?
我想将C# 如何将dd/MM/YYYY格式的字符串日期转换为YYYY-MM-dd-datetime?,c#,date,datetime,C#,Date,Datetime,我想将dd/MM/YYYY格式化的字符串日期转换为YYYY-MM-dddatetime。但它又回到了我身上 “字符串未被识别为有效的日期时间。” 如何将“04/26/2016”字符串转换为yyyy-MM-dd日期时间格式 DateTime dt = DateTime.ParseExact("04/26/2016", "yyyy-MM-dd", CultureInfo.InvariantCulture); Console.WriteLine(dt); 显然,您的格式和字符串并不完全匹配。来自
dd/MM/YYYY
格式化的字符串日期转换为YYYY-MM-dd
datetime。但它又回到了我身上
“字符串未被识别为有效的日期时间。”
如何将“04/26/2016”字符串转换为yyyy-MM-dd日期时间格式
DateTime dt = DateTime.ParseExact("04/26/2016", "yyyy-MM-dd", CultureInfo.InvariantCulture);
Console.WriteLine(dt);
显然,您的格式和字符串并不完全匹配。来自 将日期和时间的指定字符串表示形式转换为其 日期时间等价物字符串表示形式的格式必须为 精确匹配指定格式或引发异常 您应该改用
MM/dd/yyyy
格式
DateTime dt = DateTime.ParseExact("04/26/2016", "MM/dd/yyyy", CultureInfo.InvariantCulture);
如果您想用yyyy-MM-dd
格式获得它的字符串表示,只需使用ToString
方法
Console.WriteLine(dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
请注意,没有
YYYY
作为自定义日期格式。因为这些说明符区分大小写,所以应该改用。显然,格式和字符串不完全匹配。来自
将日期和时间的指定字符串表示形式转换为其
日期时间等价物字符串表示形式的格式必须为
精确匹配指定格式或引发异常
您应该改用MM/dd/yyyy
格式
DateTime dt = DateTime.ParseExact("04/26/2016", "MM/dd/yyyy", CultureInfo.InvariantCulture);
如果您想用yyyy-MM-dd
格式获得它的字符串表示,只需使用ToString
方法
Console.WriteLine(dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
请注意,没有
YYYY
作为自定义日期格式。因为这些说明符区分大小写,所以应该改用。您用错误的方式解析带有日期的字符串。
你应该:
DateTime dt = DateTime.ParseExact("04/26/2016", "MM/dd/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(dt.ToString("yyyy-MM-dd"));
您以错误的方式解析带有日期的字符串。 你应该:
DateTime dt = DateTime.ParseExact("04/26/2016", "MM/dd/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(dt.ToString("yyyy-MM-dd"));
这样试试
DateTime dt = DateTime.ParseExact("04/26/2016", "MM/dd/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(dt.ToString("yyyy-MM-dd"));
这样试试
DateTime dt = DateTime.ParseExact("04/26/2016", "MM/dd/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(dt.ToString("yyyy-MM-dd"));
从技术上讲,您可以执行一些字符串操作: 但是,
DateTime.ParseExact
是一个更好的解决方案:
String result = DateTime
.ParseExact(source, "MM/dd/yyyy", CultureInfo.InvariantCulture)
.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
从技术上讲,您可以执行一些字符串操作: 但是,
DateTime.ParseExact
是一个更好的解决方案:
String result = DateTime
.ParseExact(source, "MM/dd/yyyy", CultureInfo.InvariantCulture)
.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
ParseExact(“2016年4月26日”、“yyyy-MM-dd”
ParseExact(“2016年4月26日”、“yyyy-MM-dd”)
您使用了错误的格式进行解析,没有带数字的月份26@PatrickHofman在第一次修订版中,它就像是dd/MM/yyyy
,但由于OP对它的更改如此之快,我们并没有将它视为修订版,现在它是正常的。它是错误的,可能答案是错误的edited@SonerGönül谢谢。我看不太清楚。顺便说一句,我真的很喜欢使用 InvariantCulture
在ToString
方法中,因为OP的CurrentCulture
可能不会将GregorianCalendar
用作Calendar
属性。在这种情况下,此ToString
方法会生成与2016-04-16
不同的结果。您使用了错误的格式进行解析,数字2没有月份6@PatrickHofman在第一次修订版中,它就像是dd/MM/yyyy
,但由于OP对它的更改如此之快,我们并没有将它视为修订版,现在它是正常的。它是错误的,可能答案是错误的edited@SonerGönül谢谢。我看不太清楚。顺便说一句,我真的很喜欢在ToString
方法中使用InvariantCulture
,因为OPCurrentCulture
可能不会将Gregoriacalendar
用作Calendar
属性。在这种情况下,此ToString
方法生成的结果与2016-04-16
不同。这完全是错误的。-
和
不匹配。仅供参考,我真的喜欢使用不变量Culture
在ToString
方法中,因为OP的CurrentCulture
可能不使用GregoriaCalendar
作为Calendar
属性。在这种情况下,此ToString
方法生成的结果与2016-04-16
不同。这完全是错误的。-
和
不匹配。仅供参考,I非常喜欢在ToString
方法中使用InvariantCulture
,因为OP的CurrentCulture
可能不会将GregorianCalendar
用作Calendar
属性。在这种情况下,此ToString
方法生成的结果与2016-04-16
不同。