【问题标题】:How to fix 'Input string was not in a correct format.' when using TimeSpan.ToString()? [duplicate]如何修复“输入字符串的格式不正确。”使用 TimeSpan.ToString() 时? [复制]
【发布时间】:2019-05-14 21:02:52
【问题描述】:

我有一个管理客户到达的程序,每当创建新客户时,TimeSpan 属性 TimeOfArrival 被分配为当前时间:

TimeSpan TimeOfArrival = DateTime.Now.TimeOfDay;

现在我正在尝试以更方便的格式将其放入:

string ShortTime = TimeOfArrival.ToString("hh:mm");

虽然现在我得到以下异常:

System.FormatException: '输入字符串的格式不正确。'

我似乎无法理解问题所在。我检查了 TimeOfArrival 在我得到异常之前实际上有一个正确的 TimeSpan 值。如果我试图将用户输入解析为 TimeSpan,该异常不会让我感到惊讶,但我很困惑。有人可以帮忙吗? 提前致谢

【问题讨论】:

    标签: c# time tostring timespan


    【解决方案1】:

    你非常接近。

    只需更改要传入的字符串格式:

    string ShortTime = TimeOfArrival.ToString(@"hh\:mm");
    

    更多示例请参见TimeSpan.ToString()

    如果我试图解析用户,这个异常不会让我感到惊讶 输入到 TimeSpan,但我很困惑。

    所以被解析并且格式不正确的东西是传递给 ToString(); 的字符串; TimeOfArrival 没有任何问题。

    【讨论】:

    • 谢谢,确实很接近。有趣的是,尽管我没有遇到上面指出的任何重复项,也没有找到 TimeSpan.ToString() 的 msdn 参考,但我一直在寻找答案好几个小时,我猜我累了 ;)
    • 它发生了,我的朋友。很高兴你得到了答案,今晚可以睡觉了。 ;)
    【解决方案2】:

    MSDN's Example 中所见,格式应为:

    @"hh\:mm".

    "h'h 'm'm" 应该也可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      相关资源
      最近更新 更多