如何使用json格式化日期.SerializerSettings.转换器看起来像1288323623006

本文关键字:转换器 看起来 1288323623006 SerializerSettings 日期 何使用 json 格式化 | 更新日期: 2023-09-27 18:27:23

我目前在WebAPI应用程序中使用以下日期过滤器:

json.SerializerSettings.Converters.Add( 
   new IsoDateTimeConverter { DateTimeFormat = "dd-MM-yyyy hh:mm" });

我开始使用这个,因为我的前端无法理解日期。如果我没记错的话,那是因为毫秒的格式有太多的数字。

我需要的是将日期转换成这样的格式:

1288323623006

有人能建议我如何使用序列化程序做到这一点吗。这与默认值不同吗?

如何使用json格式化日期.SerializerSettings.转换器看起来像1288323623006

您根本不想使用IsoDateTimeConverter-您可能想要使用JavaScriptDateTimeConverter。这将把它转换成具有正确值的new Date(...),但我相信它确实会包括new Date(...)部分。如果您不想这样,您可能需要编写自己的转换器。

编写转换器应该不会太难——尽管您需要决定如何处理不同类型的DateTime。例如,如果您被要求将DateTime转换为UnspecifiedKind,您想假设它实际上已经在UTC中,或者已经在系统本地时区中,或者其他什么吗?

一旦你得到了一个合适的"即时"时间,你只需要找到它和Unix epoch(1970年1月1日00:00:00,UTC)之间的毫秒数,并将该毫秒数转换为字符串。

我想这就是你想要的

 private static readonly long DatetimeMinTimeTicks = (new DateTime(1970, 1, 1, 0, 0, 0,     DateTimeKind.Utc)).Ticks;
 long b = (long)((Calendar1.SelectedDate).ToUniversalTime().Ticks - DatetimeMinTimeTicks) / 10000;