我有一个应用程序,它可以从 SQL 读取数据并通过 WCF 将其发送到客户端应用程序,其方式类似于:
SqlDataAdapter da = new SqlDataAdapter( cmd )
DataSet ds = new DataSet();
da.Fill( ds );
return ds;
所有日期/时间都以 UTC 格式存储在数据库中。我注意到,如果运行应用程序的计算机上的时钟出现偏差,客户收到的日期/时间也会出现偏差。似乎如果 DateTime 类型是未指定的类型,WCF 将在内部将其表示为本地时间,并按原样发送,因此应用程序和客户端之间的任何时间差异都会导致日期/时间发生变化。
我当然可以在检索数据集并修复日期/时间字段时遍历它们,但是这里有人会想一些更好的方法来填充数据集,以便每个 DateTime 字段都会自动成为 da.Fill() 上的 DateTimeKind.Utc?