以下代码给出了以下错误:
"未处理的异常:字符串未被识别为有效的DateTime.
从索引0开始有一个未知单词."
如何在此处将字符串正确转换为DateTime?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Exercise
{
class Program
{
static void Main(string[] args)
{
Console.Write("Enter your birthday in format(dd.mm.yyyy): ");
DateTime userBirthday = DateTime.Parse(Console.ReadLine());
long result = DateTime.Today.Subtract(userBirthday).Ticks;
Console.WriteLine("You are {0} years old.", new DateTime(result).Year - 1);
Console.WriteLine("After 10 years you will be {0} years old.", new DateTime(result).AddYears(10).Year - 1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用ParseExact指定日期格式:
DateTime userBirthday = DateTime.ParseExact(Console.ReadLine(), "dd.MM.yyyy", CultureInfo.InvariantCulture) ;
Run Code Online (Sandbox Code Playgroud)
或者如果您不信任用户输入,请尝试TryParseExact:
DateTime userBirthday ;
if (!DateTime.TryParseExact(Console.ReadLine(), "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out userBirthday))
{
Console.WriteLine("You cheated") ;
return ;
}
Run Code Online (Sandbox Code Playgroud)
可在此处找到可用的DateTime格式.