Web服务日期时间参数不接受英国格式DD / MM / YYYY

时间:2010-09-02 08:40:41

标签: c# web-services

我已经创建了一个Web服务并将其部署在内部服务器上。服务器设置为UK日期时间格式。

Web Service包含一个具有以下签名的方法:

public Result Scan(string value, string data, DateTime ScanDateTime)
{
}

在服务器上本地测试Web服务时,它只接受美国日期时间格式的第3个参数的值。我需要使用英国日期时间格式,但我找不到改变它的方法。所有帐户和系统区域设置都设置为英国格式。

2 个答案:

答案 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
相关问题