我目前在我的WebAPI应用程序中使用以下日期过滤器:
json.SerializerSettings.Converters.Add(
new IsoDateTimeConverter { DateTimeFormat = "dd-MM-yyyy hh:mm" });
我开始使用这个,因为我的前端无法理解日期。如果我没记错的话,这是由于毫秒数字格式化为毫秒。
我需要的是将日期变成这样的格式:
1288323623006
有人可以建议我如何使用序列化程序来完成此操作。这与默认值不同吗?
答案 0 :(得分:1)
您根本不想使用IsoDateTimeConverter
- 可能想要使用JavaScriptDateTimeConverter
。这会将其转换为具有正确值的new Date(...)
- 但我相信它确实会包含new Date(...)
部分。如果您不想这样,您可能需要编写自己的转换器。
编写转换器应该不会太难 - 尽管您需要决定如何处理不同类型的DateTime
。例如,如果要求您转换DateTime
Kind
Unspecified
,您是否要假设它实际上已经是UTC,或者已经在系统本地时区,或其他什么?
一旦你及时获得了适当的“即时”,你只需要找到它与Unix纪元(1970年1月1日00:00:00,UTC)之间的毫秒数,并将该毫秒数转换为一个字符串。
答案 1 :(得分: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;