首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ServiceStack DateTime处理

ServiceStack DateTime处理
EN

Stack Overflow用户
提问于 2016-12-20 14:27:44
回答 1查看 1.5K关注 0票数 4

我对DateTime格式有问题,ServiceStack正在使用这种格式。

例如,我有一个简单的请求对象,如下所示。

代码语言:javascript
复制
public class GetAllUpdatedStudents : IReturn<GetAllUpdatedStudentsResponse>
{
    public DateTime LastUpdate { get; set; }
}

当提交2016年10月12日的DateTime(mm/dd/yyyy)时,ServiceStack将其转换为DateTime格式(dd/mm/yyyy),因此系统认为是在10月12日而不是12月10日。

当将ServiceStack属性绑定到请求对象时,我如何告诉ServiceStack不要这样做,并告诉我们mm/dd/yyyy的格式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-20 15:37:44

通过连线发送日期时间的最适当和最不含糊的方法是始终使用ISO 8601日期格式。ServiceStack支持多种日期格式,IS0 8601的变体很多,但ServiceStack中没有支持日期前一个月格式的配置,比如mm/dd/yyyy,它被解释为dd/mm/yyyy。但是,为了避免任何歧义,理想情况下,您应该发送YYYY-MM-DD格式。

如果需要接受MM/DD/YYYY,可以将其更改为字符串,例如:

代码语言:javascript
复制
public class GetAllUpdatedStudents : IReturn<GetAllUpdatedStudentsResponse>
{
    public string LastUpdate { get; set; }
}

然后在服务实现中使用首选的DateTime格式解析它。

您可以重写内置的DateTime序列化,以特定的日期格式解析它,如下所示:

代码语言:javascript
复制
JsConfig.DeSerializeFn = str => {
    return DateTime.ParseExact(str,"MM/dd/yyyy",null);
};

但我建议不要这样做,因为您的服务不可能互操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41244609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档