将输入的字符串转换为日期

时间:2014-03-19 11:50:39

标签: c# parsing date readline

我一直在尝试将日期转换为wrok从字符串转换为我已经查看msdn和其他一些堆栈问题的日期但是多种方式都没有用。我正在制作一个控制台应用程序,它需要一个有效的日期来检查其他日期。以下是我目前的尝试。

string StartDate, EndDate;
Console.WriteLine("Input Start date");
StartDate = Console.ReadLine();
StartDate = DateTime.Parse(StartDate);

我目前设置变量StartDate,然后根据用户输入的内容设置一个值,然后使用Parse

将其更改为日期

5 个答案:

答案 0 :(得分:4)

您正尝试将DateTime值分配给字符串StartDate,这是错误的。所以改变它如下:

string StartDate, EndDate;
DateTime date;       
Console.WriteLine("Input Start date");
StartDate = Console.ReadLine();
date = DateTime.Parse(StartDate);

答案 1 :(得分:2)

尝试使用Convert.ToDateTime();

示例:

string date = "01/08/2008";
DateTime dt = Convert.ToDateTime(date);

答案 2 :(得分:2)

string不是DateTimeDateTime不是String。因此,您可以将字符串解析为日期,但不能将字符串变量用于DateTime,反之亦然。您需要两个变量:

string startDateInput = Console.ReadLine();
DateTime startDate = DateTime.Parse( startDateInput );

如果输入字符串不是有效日期,则可能会失败,您应该使用TryParse

DateTime startDate;
bool validDate = DateTime.TryParse(startDateInput, out startDate);
if(validDate)
    Console.Write("Valid date: " + startDate.ToLongDateString());

答案 3 :(得分:2)

使用DateTime.TryParse()

  

将指定的日期和时间字符串表示形式转换为它   DateTime等效并返回一个值,指示是否   转换成功。

DateTime date;

if (!DateTime.TryParse("DateString", out date))
   {
      MessageBox.Show("Invalid string!");
   }

答案 4 :(得分:0)

您需要指定日期格式。

试试这个:示例格式MM-dd-yyyy

Console.WriteLine("Input Start date Format -> MM-dd-yyyy");
string StartDate = Console.ReadLine();
DateTime YourDate = DateTime.ParseExact(StartDate,"MM-dd-yyyy", 
                    System.Globalization.CultureInfo.InvariantCulture);