Dav*_*ave 28 .net c# datetime sql-server-ce
我继承了C#代码,它有很多DateTimes,其中Kind属性是DateTimeKind.Unspecified.它们被送入Datetime.ToUniversalTime(),它返回一个UTC日期时间(在我的情况下它增加了7个小时).这就是ToUniversalTime()的工作原理; 见MSDN.问题是这些DateTime实际上已经是UTC时间.它们被从SQL Server Compact 4.0数据库中取出.它们以UTC格式存储在那里.我的主要问题是:
如果我可以沉迷于后续问题,那将是:
如果我能提供更多详细信息,请通知我.我是这个代码库的新手,仍然让我的大脑围绕它,所以我很难完美地描述这个问题.
戴夫
kat*_*330 41
你可能需要这样的东西:
var unspecified = new DateTime(2016, 12, 12, 10, 10, 10, DateTimeKind.Unspecified);
var specified = DateTime.SpecifyKind(unspecified, DateTimeKind.Utc);
Run Code Online (Sandbox Code Playgroud)
关于SpecifyKind()
来自MSDN的方法:
SpecifyKind方法使用指定的种类参数和原始时间值创建新的DateTime对象.
它将创建新的对象,新的Kind和同一时间值.您无法更改现有对象的种类,您需要创建具有相同值和不同种类的新对象.
关于其他问题,这里是SQL Compact支持的类型.这是与DateTimeOffset有关的问题.看起来它在Sql Compact中尚不支持.
小智 6
您可以将上述两个答案结合起来以获得更清洁的解决方案......
public static DateTime SetKind(this DateTime DT, DateTimeKind DTKind)
{
return DateTime.SpecifyKind(DT, DTKind);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19226 次 |
最近记录: |