【问题标题】:Different time formats on different time calls不同时间调用的不同时间格式
【发布时间】:2013-10-22 11:00:07
【问题描述】:

我有一个 ASP.Net 应用程序,它使用 "DateTime.UTCNow" 获取当前时间。

当我从应用程序服务器本身访问页面时,它以以下格式显示时间:M/dd/yyyy (10/22/2013 6:45:18 AM)

但如果我尝试从另一台机器/客户端访问此页面,它会显示格式为 dd/M/yyyy (22/10/2013 2:44:24 AM)

因此,当我这次解析时出现错误 - “字符串未被识别为有效的 DateTime。” 在一台机器上但它在另一台机器(服务器本身)上工作正常。

请帮我解决这个问题。

提前致谢

湿婆

【问题讨论】:

  • 您的意思是当您在日期对象上调用 ToString() 时会得到不同的结果?如果是这样,那是因为 ToString() 正在使用当前区域性来生成字符串,并且服务器和您的机器之间可能会有所不同。
  • 你可以在你的问题中添加解析行吗?
  • 但是在解析自己之前我得到了不同的格式。那是在执行 DateTime.UTCNow 从不同的机器调用同一页面时返回两种不同的格式

标签: asp.net date format datetime-format


【解决方案1】:

在您的代码中每次读取时间,格式为 M/dd/yyyy eg:

time = DateTime.Now.ToString("M/dd/yyyy"); ///time is the time you read from PC

【讨论】:

  • 根据您的评论,我将代码更改为:DateTime curDateTime = Convert.ToDateTime(DateTime.UtcNow.ToString("M/dd/yyyy"));。现在我在这里遇到异常
  • 试试 DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss");
  • 再次出现同样的异常。我的确切观点是我在同一台机器上为不同的客户调用获得不同的时间格式。在花了这段时间之后,我将这段时间解析为代码的后面部分的字符串。如果调用来自客户端机器,我在这部分代码中遇到异常,如果调用来自服务器机器,它工作正常。任何帮助表示赞赏...
【解决方案2】:

试试这个,

 var time = DateTime.UtcNow.ToString("MM/dd/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);

【讨论】:

    【解决方案3】:

    试试

    time = DateTime.Now.ToShortTimeString();
    

    【讨论】:

      【解决方案4】:

      我也遇到了同样的问题。尝试将客户端计算机上的区域设置设置为与服务器相同。它对我有用

      编辑:i want to set my regional setting to english (UK) on load of my program how can i do so?

      这应该让您在区域设置中走上正确的道路

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      相关资源
      最近更新 更多