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