代码之家  ›  专栏  ›  技术社区  ›  Skittles

托管服务器上的日期时间格式

  •  4
  • Skittles  · 技术社区  · 17 年前

    我最近更换了我的主机提供商,由于服务器现在所在的时区,我的代码已经停止工作。

    托管服务器报告在太平洋时间,但是,我的代码需要与格林威治标准时间,因为我的网站是为英国市场。因此,我的所有显示和搜索都需要采用dd/MM/yyyy格式

    我如何解释差异?

    例如,当我执行DateTime.Parse(“03/11/2008”)时,它会失败,因为我假设“Parse”是针对服务器设置的。在我的代码中,我还得到“字符串未被识别为有效的日期时间”。

    4 回复  |  直到 17 年前
        1
  •  8
  •   Pavel Chuchuva grapeot    17 年前

    在web.config文件中添加 <globalization> 下元素 <system.web> 节点:

    <system.web>
      <globalization culture="en-gb"/>
      <!-- ... -->
    </system.web>
    
        2
  •  3
  •   Ray    17 年前

    尝试

    DateTime.Parse("28/11/2008", new CultureInfo("en-GB"))
    

    the overload for DateTime.Parse on MSDN

    另外,注意不要将时区(太平洋,格林尼治标准时间)与文化混淆。

        3
  •  1
  •   Philippe Grondier    17 年前

    为了避免处理这些非常无聊的问题,我建议您始终按照标准和唯一的SQL/ISO日期格式(YYYY-MM-DD)解析数据。然后,您的查询将在国际范围内工作,无论主服务器或查询客户机上的日期参数是什么(本地日期设置可能与主服务器设置不同)!

        4
  •  0
  •   Mukklan    11 年前

    我在我的日期文本框中找到了新服务器上的NaN。发现新服务器具有internet explorer选项“在兼容模式下显示intranet站点”。

    <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" / >
    

    在aspx的头部强制关闭compability模式。

    这解决了很多奇怪的事情。 希望这对别人有帮助!