DateTime Json Return From WebAPI with Default Serializer

前端 未结 2 1780
深忆病人
深忆病人 2021-02-02 01:10

I know this question has been hashed over multiple times and I read lots of posts on that hashing but still am confused.

Using MVC4/WebAPI, I have a datetime that is sim

相关标签:
2条回答
  • 2021-02-02 01:35

    if serializing with json.net keep in mind that you can specify DateTimeZoneHandling.

    Example in WebApiConf.cs

    var json = config.Formatters.JsonFormatter;
    json.SerializerSettings.DateTimeZoneHandling =Newtonsoft.Json.DateTimeZoneHandling.Local;
    
    0 讨论(0)
  • 2021-02-02 01:54

    The date time 2012-10-06T09:45:00, which we recive in JSON with Web API and default serializer is the ISO 8601 format.

    In fact this is so called Combined date and time representations. Extract:

    ..A single point in time can be represented by concatenating a complete date expression, the letter T as a delimiter, and a valid time expression. For example "2007-04-05T14:30"...

    There is no time zone information in this format. As mentioned in the Time zone designators Extract:

    Time zones in ISO 8601 are represented as local time (with the location unspecified), as UTC, or as an offset from UTC. If no UTC relation information is given with a time representation, the time is assumed to be in local time.

    In other words, if there is no offset from UTC specified, it is treated as a local time.

    The UTC format would be extended with Z at the end

    If the time is in UTC, add a Z directly after the time without a space. Z is the zone designator for the zero UTC offset. "09:30 UTC" is therefore represented as "09:30Z" or "0930Z". "14:45:15 UTC" would be "14:45:15Z" or "144515Z".

    UTC time is also known as 'Zulu' time, since 'Zulu' is the NATO phonetic alphabet word for 'Z'.

    So, the date-time we recieve is the ISO 8601 format, treated as local time zone (no Z at the end like this 2012-10-06T09:45:00Z)

    0 讨论(0)
提交回复
热议问题