簡體   English   中英

當 ASP.Net 收到帶有 DateTime 屬性的已發布 model 時,什么決定了 DateTime.Kind?

[英]What determines the DateTime.Kind when ASP.Net receives a posted model with a DateTime property?

我們有許多 Vue 頁面,帶有 Typescript 模型,它們提交到相同的 controller 操作。 controller 采用單個復雜參數,而 class 具有 DateTime 屬性。

Vue 頁面已經隨着時間的推移進行了修改,現在看起來彼此完全不同。 但是,在所有情況下,DateTime 屬性都取自 inputDateOfBirth 字段並與 Moment 進行映射。 代碼看起來有點像這樣:

var dob = Helpers.ToMoment(this.inputDateOfBirth);

if (dob.isValid()) {
    this.dateOfBirth = dob.format("YYYY-MM-DD HH:mm:ss");
}

dateOfBirthinputDateOfBirth在 Typescript model 中都列為類型string

在大多數情況下,最終由 controller 操作接收的復雜參數具有此 DateTime 屬性作為DateTime.Kind of Utc 然而,其中一個有一個DateTime.KindUnspecified 這會導致進一步的問題。

是什么決定了由 C# controller 操作在 ASP.NET MVC 中解釋的數據的 DateTime.Kind 值,我可以做些什么來確保它被一致地接收為 Utc?

日期格式可能會導致這種差異。
DateTime 的默認 model 活頁夾需要ISO 8601 Time zone designators ,這意味着如果您的日期字符串看起來像這樣2009-06-15T13:45:30.0000000Z ,那么DateTime.Kind將是UTC ,如“Z”所示。
或者,如果像這樣2009-06-15T13:45:30.0000000-07:00出現時區偏移“-07:00”,則DateTime.Kind將是Local
如果沒有提供這些屬性,則DateTime.Kind將是Unspecified

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM