1

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

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

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

我需要的是把日期变成这样的格式:

1288323623006

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

4

2 回答 2

1

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

编写转换器应该不会太难 - 尽管您需要决定如何处理不同类型的DateTime. 例如,如果要求您将 aDateTime与 aKind进行转换Unspecified,您是否想假设它实际上已经在 UTC 中,或者已经在系统本地时区中,或者其他什么?

一旦您及时获得了适当的“瞬间”,您只需找到该时间与 Unix 纪元(UTC 时间 1970 年 1 月 1 日 00:00:00)之间的毫秒数,并将该毫秒数转换为字符串。

于 2013-08-13T08:08:47.460 回答
0

我想这就是你想要的

 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; 
于 2013-08-13T08:22:29.157 回答