Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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# 到达服务器的日期时间转换为UTC_C#_Json_Datetime - Fatal编程技术网

C# 到达服务器的日期时间转换为UTC

C# 到达服务器的日期时间转换为UTC,c#,json,datetime,C#,Json,Datetime,我们正在Linux上运行.NETCore2.1。我们在下面的正文中发布了一篇文章,似乎在所有3种情况下,datetime都转换为UTC时间,而不是在提交时保留带有偏移量的本地时间。令人惊讶的是,即使反序列化为字符串的JSON属性仍然显示转换后的值 我们正试图保留本地值以供进一步处理 JSON: 型号: public class HealthAssessmentResponseDto { [JsonProperty("ts")] // p

我们正在Linux上运行.NETCore2.1。我们在下面的正文中发布了一篇文章,似乎在所有3种情况下,datetime都转换为UTC时间,而不是在提交时保留带有偏移量的本地时间。令人惊讶的是,即使反序列化为字符串的JSON属性仍然显示转换后的值

我们正试图保留本地值以供进一步处理

JSON:

型号:

public class HealthAssessmentResponseDto
    {
        [JsonProperty("ts")]
        // public string LocalDttmStr { get; set; }
        public DateTimeOffset LocalDttm { get; set; }

        [JsonProperty("tsTest")]
        public string LocalDttmStr { get; set; }

        [JsonProperty("tsTest2")]
        [JsonConverter(typeof(DateFormatConverter), "yyyy-MM-ddTHH:mm:ssK")]
        public DateTimeOffset LocalDttmConverted { get; set; }
    }

    public class DateFormatConverter : Newtonsoft.Json.Converters.IsoDateTimeConverter
    {
        public DateFormatConverter(string format)
        {
            DateTimeFormat = format;
        }
    }
结果

{
    "tranId": "7be8989c-c310-4b7a-a5a2-1706398f94f8",
    "payload": {
        "rto": true,
        "message": "LocalDttmStr: 2020-09-27T05:23:27, LocalDttmConverted: 09/27/2020 05:23:27 +00:00, DatetimeOffset: 09/27/2020 05:23:27 +00:00"
    }
}

如果您可以生成一个不需要从任何地方接收请求的JSON文件,这将非常有用—只需从磁盘加载一个JSON文件,解析它,然后显示结果,包括显示如何显示结果的代码。这将使帮助您变得更容易,部分原因是我们都可以轻松地复制它。日期时间是正确的,不应该更改,因为它们包含时区。您不应该对代码进行任何更改,除非将日期时间作为字符串输出,您可以将日期格式化为您喜欢的任何格式。我不认为这是一个重要问题。这是一个输出问题。此外,您不需要任何自定义转换器或更改默认json设置。
{
    "tranId": "7be8989c-c310-4b7a-a5a2-1706398f94f8",
    "payload": {
        "rto": true,
        "message": "LocalDttmStr: 2020-09-27T05:23:27, LocalDttmConverted: 09/27/2020 05:23:27 +00:00, DatetimeOffset: 09/27/2020 05:23:27 +00:00"
    }
}