【问题标题】:Parsing a Date Range in C# - ASP.NET在 C# 中解析日期范围 - ASP.NET
【发布时间】:2008-11-22 17:56:27
【问题描述】:

假设 11/13/2008 - 12/11/2008 作为返回到 TextBox 中的值,使用 C# 解析开始和结束日期的最佳方法是什么?

我知道我可以使用:

DateTime startDate = Convert.ToDateTime(TextBoxDateRange.Text.Substring(0, 10));
DateTime endDate = Convert.ToDateTime(TextBoxDateRange.Text.Substring(13, 10));

有没有更好的办法?

【问题讨论】:

  • 你为什么要把它放在一个文本框中?只是好奇。

标签: c# parsing


【解决方案1】:
var dates = TextBoxDateRange.Text.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);

var startDate = DateTime.Parse(dates[0], CultureInfo.CurrentCulture);
var endDate = DateTime.Parse(dates[1], CultureInfo.CurrentCulture);

【讨论】:

    【解决方案2】:

    而不是 Convert.ToDateTime,使用 DateTime.Parse 并明确输入您想要的文化可能是值得的。如果我用任何欧洲文化尝试该示例,我会得到一个错误,因为 11/13/2008 指向 2008 年第 13 个月的第 11 天...

            CultureInfo ci = new CultureInfo("en-us");
            var startDate = DateTime.Parse(components[0], ci);
    

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2013-03-04
      相关资源
      最近更新 更多