[英]String was not in a correct format when parsed with DateTime.ParseExact
当我尝试将此字符串解析为日期时:
1.05.2016
使用此代码:
var startDate = DateTime.ParseExact(Console.ReadLine(),
"dd.m.yyyy", CultureInfo.InvariantCulture);
发生错误:
Unhandled Exception: System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at System.DateTime.ParseExact(String s, String format, IFormatProvider provider)
at _09.Holidays_Between_Two_Dates.Program.Main(String[] args) in C:\Users\martin\documents\visual studio 2015\Projects\Methods. Debugging - Troubleshooting Code\09. Holidays Between Two Dates\09. Holidays Between Two Dates.cs:line 15
有人可以帮忙吗? 提前致谢。
更正格式,因为输入日期时间格式和提供的格式必须匹配
对于您的输入1.05.2016
您可以使用
var startDate = DateTime.ParseExact(Console.ReadLine(),
"d.MM.yyyy", CultureInfo.InvariantCulture);
但日期并非总是单位数,因此最好使用两位数01.05.2016
和
var startDate = DateTime.ParseExact(Console.ReadLine(),
"dd.MM.yyyy", CultureInfo.InvariantCulture);
“ M”代表几个月,“ m”代表分钟。 确保使用正确的一个:
var startDate = DateTime.ParseExact(Console.ReadLine(),
"dd.M.yyyy", CultureInfo.InvariantCulture);
您可以从Console.Readline()中仔细检查您的输入吗? 也许其中包含回车符或其他一些非法字符? 我在LinqPad中运行了以下命令:
DateTime.ParseExact("1.05.2016","d.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture).Dump();
然后返回“ 01/05/2016 00:00:00”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.