我已经创建了一个Web服务并将其部署在内部服务器上。服务器设置为UK日期时间格式。
Web Service包含一个具有以下签名的方法:
public Result Scan(string value, string data, DateTime ScanDateTime)
{
}
在服务器上本地测试Web服务时,它只接受美国日期时间格式的第3个参数的值。我需要使用英国日期时间格式,但我找不到改变它的方法。所有帐户和系统区域设置都设置为英国格式。
答案 0 :(得分:3)
您可以更改运行时使用的文化,但我强烈建议您使用yyyy-MM-dd
的标准格式,因为所有文化都理解这种格式。
答案 1 :(得分:1)
因为输入的Web Service服务器端代码使用与en-GB
不同的本地区域性设置,即en-US
。
但输出数据会使用客户端文化设置进行格式化。
输入格式应由服务器维护人员记录,您应该遵循它们。
一些DateTime转换示例:
DateTime enGb = DateTime.ParseExact("02/09/2010", "dd/MM/yyyy", new CultureInfo("en-GB"));
string enUS_full = enGb.ToString(new CultureInfo("en-US")); // 9/2/2010 12:00:00 AM
string enUS_date = enGb.ToString("MM/dd/yyyy"); // 9/2/2010
string iso = enGb.ToString("yyyy-MM-dd"); // 2010-09-02
您也可以使用非硬编码格式,但预先配置:
string enUS = enGb.ToString(new CultureInfo("en-US").DateTimeFormat.ShortDatePattern); // 9/2/2010
string iso = enGb.ToString(CultureInfo.InstalledUICulture.DateTimeFormat.ShortDatePattern); // 2010-09-02