簡體   English   中英

Controller 將日期從 dd/MM/yyyy 更改為 MM/dd/yyyy

[英]Controller changing date from dd/MM/yyyy to MM/dd/yyyy

我正在為 API 使用 .NET Core 3.1,其工作方式如下:

[HttpPost]
public IActionResult Post([FromBody]ClassA classA)...

[HttpGet]
public IActionResult Get([FromQuery]ClassB classB)...

public ClassA {
     [JsonProperty("date1")]
     public DateTime date {get;set;}
}

public ClassB{
     [JsonProperty("date2")]
     public DateTime date {get;set;}
}

當我發送一個 GET 請求時,我能夠獲得我想要的格式(dd/MM/yyyy),因為我有一個自定義的 ModelBinder 可以解決問題。

我認為它也適用於 POST 請求,但它沒有。 當我以 (dd/MM/yyyy) 格式發送日期時,它在 controller 中顯示為 (MM/dd/yyyy)。

我在某處讀到 ModelBinder 僅適用於x-www-form-urlencoded ,但對於我的 POST 方法,我發送的是 JSON。

我曾嘗試更改DefaultThreadCurrentCultureDefaultThreadCurrentUICulture但它不起作用。

我也嘗試過使用自定義 JsonConverter 但是我必須將 JsonConverter 添加到我擁有的每個日期。

我正在尋找更復雜的解決方案。

嘗試以下操作:

    public class ClassA
    {
        private DateTime _date
        [JsonProperty("date1")]
        public string date {
            get{ return _date.ToString("MM/dd/yyyy");}
            set{ _date = DateTime.ParseExact(value, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);}
        }
    }

暫無
暫無

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

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