Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 让C代码在与本地时间不同的时区运行_C#_Xml - Fatal编程技术网

C# 让C代码在与本地时间不同的时区运行

C# 让C代码在与本地时间不同的时区运行,c#,xml,C#,Xml,我有一个使用XML数据的windows服务。XSD datetime值包含来自给定时区的偏移量,因此在反序列化时,这些偏移量将转换为本地时间。然后,windows服务将此数据提交到数据库 我的问题是数据库的用户根本不关心时区。他们希望在日期的来源地的本地时间中查看日期值 我在想,我可以让windows服务代码在与本地服务器时间不同的时区中运行,以便反序列化程序不会将转换应用于本地时间 这是个好主意吗 我能这样做吗?到目前为止,我读到的所有内容都说不,我不能,因为.net不只是假设它运行的服务器的

我有一个使用XML数据的windows服务。XSD datetime值包含来自给定时区的偏移量,因此在反序列化时,这些偏移量将转换为本地时间。然后,windows服务将此数据提交到数据库

我的问题是数据库的用户根本不关心时区。他们希望在日期的来源地的本地时间中查看日期值

我在想,我可以让windows服务代码在与本地服务器时间不同的时区中运行,以便反序列化程序不会将转换应用于本地时间

  • 这是个好主意吗
  • 我能这样做吗?到目前为止,我读到的所有内容都说不,我不能,因为.net不只是假设它运行的服务器的时区
    通常的方法是将日期作为UTC日期时间存储在数据库中

    您可以使用DateTime.UtcNow检索UTC日期

    如果你想用当地时间,你可以用DateTime。现在

    此MSDN页面更深入地解释了日期时间结构

    我不想手动将日期转换为所需的日期 代码中的时区。如果可能的话,我宁愿通过设置 windows服务将在所需时区运行–休12秒前


    那么,这个问题的答案是否定的。您不能将服务设置为在计算机以外的时区运行。这也会使此问题与编程无关。

    您是否有理由不在读取时转换为数据使用者时区?您是否能够修改此windows服务的源代码?@rowlandshaw这就是问题所在。我正在转换到数据消费者时区。然而,这正是他们不想看到的。他们希望查看数据所在地的本地时间中的日期时间originated@hometoast是的,我能做到这一点。提示双向飞碟与链接在3…2…1…快速添加链接到NodaTime和MSDN DateTimeOffset,然后你WinThank-我将不得不做手动转换然后。