.net core 如何为.net core 2.0 webapi设置默认日期时间格式

.net core 如何为.net core 2.0 webapi设置默认日期时间格式,.net-core,asp.net-core-2.0,asp.net-core-webapi,.net Core,Asp.net Core 2.0,Asp.net Core Webapi,目前在我的本地。API的格式应与SQL Server数据库中的格式相同,即yyyy-mm-dd 但是,当我将应用程序部署到生产服务器时。API要求日期时间格式为yyyy dd mm 有没有办法将我的.net核心web api配置为在每个环境中都接受YY-mm-dd作为默认格式?请显示一些代码。您可以在ConfigureServices() 100%的时候,如果我使用的是DateTime,我会为它创建一个接口。到了测试的时候,它只会让生活变得更轻松。我相信这对你也有用 这种方法有几个原因 这是可以

目前在我的本地。API的格式应与SQL Server数据库中的格式相同,即yyyy-mm-dd

但是,当我将应用程序部署到生产服务器时。API要求日期时间格式为yyyy dd mm


有没有办法将我的.net核心web api配置为在每个环境中都接受YY-mm-dd作为默认格式?

请显示一些代码。您可以在
ConfigureServices()


100%的时候,如果我使用的是
DateTime
,我会为它创建一个接口。到了测试的时候,它只会让生活变得更轻松。我相信这对你也有用

这种方法有几个原因

  • 这是可以测试的
  • 它将
    DateTime
    的依赖关系从业务逻辑中抽象出来
  • 如果应用程序中的其他系统可能需要不同的格式,只需创建一个新的
    MyAppDateTimeProvider


  • 请包含API的代码。这是一个文化问题。
    services
            .AddMvc()
            .AddJsonOptions(options =>
                            {
          //Set date configurations
          //options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
                    options.SerializerSettings.DateFormatString = "yyyy-MM-dd"; // month must be capital. otherwise it gives minutes.
                            });
    
    public interface IDateTimeProvider
    {
        DateTime Now { get; }
        string GetDateString(int year, int month, int day);
        DateTime TryParse(string sqlDateString);
    }
    
    public class SqlDateTimeProvider : IDateTimeProvider
    {
        public DateTime Now => DateTime.UtcNow;
    
        public string GetDateString(int year, int month, int day)
        {
            return new DateTime(year, month, day).ToString("yyyy-MM-dd");
        }
    
        public DateTime TryParse(string sqlDateString)
        {
            var result = new DateTime();
            DateTime.TryParse(sqlDateString, out result);
            return result;
        }
    }