问题描述
我正在尝试标准化Web服务如何处理javascript和后端(.NET)之间的日期。
我的目标是对DateTime对象进行以下处理:
-
从客户端接收日期时
- 字符串格式
- 将DateTime objs发送给客户端时的unix时间戳
我已经分别完成了上述每个操作,但是由于DateTime值包装在各个集合中,因此解决方案似乎彼此冲突。
1。
在默认的JsonConvert设置中设置DateFormatString选项。
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
Converters = new List<JsonConverter> { ... },DateFormatString = "MM-dd-yyyy",};
2。
定义一个自定义JsonConverter以将DateTime objs序列化为时间戳。
public class DateTimeTimestampConverter : JavaScriptDateTimeConverter
{
public override void WriteJson( JsonWriter writer,object value,JsonSerializer serializer )
{
if ( value == null ) return;
long ticks;
if ( value is DateTime dateTime )
{
DateTime utcDateTime = dateTime.ToUniversalTime(); // custom extension fn
ticks = utcDateTime.ToJsTimestamp();
}
else
throw new JsonSerializationException( "Expected date object value." );
writer.WriteValue( ticks );
}
}
问题在于,只要将DateTime objs包装在诸如字典或List之类的对象中,就会在JsonWriter的b / c中使用DateFormatString选项。
在此问题上的任何帮助将不胜感激,因为我想避免枚举具有DateTime对象的集合并将它们转换为序列化之前的时间戳。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)