更新事件的日期格式更改

时间:2014-03-24 03:29:29

标签: c# asp.net-mvc json datetime

我遇到日期格式问题。在调用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也没有修复它。

1 个答案:

答案 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"