我遇到日期格式问题。在调用UpdateItem操作时,CreatedAt
的日期格式变得混乱。我顺便使用JSON,所以必须与日期序列化有关。
型号:
public class Item
{
public int ItemId { get; set; }
public string ItemName { get; set; }
public string CreatedBy { get; set; }
public DateTime? CreatedAt { get; set; }
public string UpdatedBy { get; set; }
public DateTime? UpdatedAt { get; set; }
}
创建行动:
public int CreateItem(Item item)
{
var item = new Item();
viewModel.CopyToItem(item);
item.CreatedBy = WebSecurity.CurrentUserName;
item.CreatedAt = DateTime.Now;
db.Items.Add(item);
db.SaveChanges();
return item.ItemId;
}
更新行动:
public void UpdateItem(Item item)
{
item.UpdatedBy = WebSecurity.CurrentUserName;
item.UpdatedAt = DateTime.Now;
db.SaveChanges();
}
日期格式不正确:
/Date(1395366469723)/
应该是:
2014-03-21T09:50:01.747
我在控制器中尝试过此操作,但出现String was not recognized as a valid DateTime'
错误。
string isoJson = JsonConvert.SerializeObject(DateTime.Now, new IsoDateTimeConverter());
item.CreatedAt = DateTime.ParseExact(isoJson, "yyyy-MM-dd hh:mm:ss.ttt", CultureInfo.InvariantCulture);
在模型中使用不可为空的DateTime
也没有修复它。
答案 0 :(得分:0)
Javascript使用Unix Time。如果您想获得具有给定javascript日期值的DateTime对象,请从1/1/1970创建一个新的DateTime对象,然后添加毫秒。
观察:
var dt = new DateTime(1970, 1, 1).AddMilliseconds(1395366469723);
// "21/03/2014 1:47:49 AM"