【问题标题】:Problem with Date & time format on server服务器上的日期和时间格式问题
【发布时间】:2011-05-27 10:49:09
【问题描述】:

我在尝试过滤两个日期之间的列表时遇到问题。我有一个在我们的本地机器 .NET 3.5 上运行的解决方案。该解决方案运行良好,没有任何错误。但是当我把它放在我们的服务器上(2008 年)时,我得到了

System.FormatException:字符串未被识别为有效的 DateTime。

如果我将机器的日期/时间格式从英语(英国)更改为英语(美国),我可以在本地重现问题。

问题是我将服务器设置设置为与本地解决方案完全相同,但仍然出现错误。

涉及的代码是

public DateTime StartDate
    {
        get
        {
            if (this.ViewState["StartDate"] != null)
            {
                return DateTime.Parse(this.ViewState["StartDate"].ToString());     
            }
            else { return DateTime.Today.AddYears(-1); }
        }
        private set
        {
            this.ViewState["StartDate"] = value.ToString();
        }
    }

    public DateTime EndDate
    {
        get
        {
            if (this.ViewState["EndDate"] != null)
            {
                return DateTime.Parse(this.ViewState["EndDate"].ToString());
            }
            else { return DateTime.Today; }
        }
        private set
        {
            this.ViewState["EndDate"] = value.ToString();
        }
    }

请帮忙!

【问题讨论】:

    标签: string time format


    【解决方案1】:

    使用 ParseExact。这将允许您指定日期格式,而与机器的区域设置无关。

    关于 Stack Overflow 的很多问题。

    .NET Parsing string into DateTime

    【讨论】:

    • 嗨,保罗,谢谢。我是企业主,所以我会将其传递给我们的开发人员。
    【解决方案2】:

    Hej,尝试将文化信息指定给 DateTime.Parse 方法,例如:

    DateTime.Parse(dateString, new CultureInfo("en-US", false))
    

    更多http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2020-10-26
      相关资源
      最近更新 更多