目前在我当地。 API期望与SQL Server数据库中的格式相同,即yyyy-mm-dd。
但是,当我将应用程序部署到生产服务器时。 API期望日期时间格式为yyyy-dd-mm。
有没有办法配置我的.net核心web api接受yyyy-mm-dd作为每个环境的默认格式?
答案 0 :(得分:8)
请显示一些代码。您可以在AddJsonOpions()
ConfigureServices()
管道中尝试以下操作
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.
});
答案 1 :(得分:2)
100%的时间,如果我使用DateTime
,则为其创建一个接口。在进行测试时,它会使生活变得更加轻松。我相信这也会对您有用。
这种方法有两个原因。
DateTime
的依赖关系。MyAppDateTimeProvider
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;
}
}