在服务器端获取日期格式

Getting date format in server side

我在 Windows 机器上有一个 C# Web 服务 运行,我有这个代码:

Details = tInfoRequestHistory.Select(i => new AppJsonDetails
                                {
                                    Type = i.PlatformUserId == null ? "Request" : "Response",
                                    Date = i.Date.ToString("D"),
                                    Time = i.Date.ToString("hh:mm tt"),
                                    Text = i.Comment,
                                }).ToArray()

我在我的应用程序中收到此 JSON:

{
    Date = "lunes, 12 de enero de 2015";
    Text = "402\nGarcia\n01/12/15 12:52 \nBla bla";
    Time = "11:52 ";
    Type = Request;
}

如您所见,我在使用此指令生成的节点 "Time" 中缺少 PM/AM(实际上有一个空白 space)i.Date.ToString("hh:mm tt")

如果我在我的开发机器上执行我的代码,一切正常。

我正在使用 windows 服务器 2012 和最后一个 IIS 8.0,我刚刚更改了我的服务器的区域设置以匹配我的开发机器,所以我正在读取我的服务器时钟“12:00下午

我确定这是我在服务器或 IIS 或 Web.config 中缺少的一些配置。

任何帮助或想法将不胜感激。

,因为你使用的DateTime.ToString() without any IFormatProvider, sounds like your CurrentCulture's AMDesignator or / and PMDesignator属性是空字符串。

我建议使用 InvariantCulture 作为 IFormatProvider 喜欢;

i.Date.ToString("hh:mm tt", CultureInfo.InvariantCulture);

或者在 windows 机器区域设置中更改具有 非空 AMDesignatorPMDesignator 属性的当前文化。