如何解决“用户给定的字符串到日期转换的强制转换异常”

时间:2019-09-11 11:15:00

标签: c# console-application

我希望获得以下用户的输入:float salary中的string inputDateTime doj,接受它们并在控制台上显示它们。

  • 使用DateTime doj,它会在接受时显示类型转换错误。
  • 如果声明为string doj,则输出正确。

为了从stringDatetime的转换,我尝试使用Parse, Tryparse,tryparseexact

代码:

Console.WriteLine("Enter your salary");
salary = float.Parse(Console.ReadLine());
Console.WriteLine("enter your date of joining in dd/mm/yyyy");
input = Console.ReadLine();
doj=DateTime.Parse("input")
/*
doj=Convert.toDatetime("Console.Readline()")
*/

1 个答案:

答案 0 :(得分:0)

Targaryen

如果您的任务是将包含特定日期格式的字符串转换为DateTime对象,则应使用以下两种方法之一:

DateTime.ParseExact Method

DateTime.TryParseExact Method

由于您说过您都尝试过,所以我猜您没有正确格式化它们。

这是您到目前为止所发布内容的错处所在。

您的样本显示的参数用引号引起来。正如Stefan指出的那样,这是不正确的。

doj=DateTime.Parse("input")
doj=Convert.toDatetime("Console.Readline()")

您应该查看有关命令用法的上述参考文档。请注意,它们包含有关如何使用命令的示例。

您还向Stefan提到以下代码不起作用。

DateTime.ParseExact(input, "dd/mm/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

原因可能是由于您只在寻找要输入的日期,但您列出的格式也在寻找时间信息。如果您只是在寻找日期信息,请仅指定仅包含日期元素的格式模式。

作为参考,下面列出了用作日期和时间说明符的代码:

Date And Time format in C Sharp

祝你好运。