日期和问题的问题服务器上的时间格式

时间:2011-05-27 10:49:09

标签: string time format

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

System.FormatException:String未被识别为有效的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();
        }
    }

请帮忙!

2 个答案:

答案 0 :(得分:1)

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

关于Stack Overflow的很多问题。

.NET Parsing string into DateTime

答案 1 :(得分:0)

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

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

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