我的模型中有一个Datetime属性,如下所示:
[DataType(DataType.Date)]
[Column(TypeName = "date")]
public DateTime SubmittedOn { get; set; }
该值作为日期插入到数据库中,不包含时间部分。但是,当请求该值时,服务器会返回时间部分,如下所示< code > " 2020-04-03t 00:00:00 "
如何在我的dbContext
中使用ModelBuilder
来删除返回值时的时间部分?
modelBuilder.Entity<Model>()
.Property(e => e.SubmittedOn)
.HasConversion(...?)
要将数据库中的日期转换为不带时间的字符串,并将日期字符串转换为要发送到数据库的日期,请执行以下操作:
modelBuilder.Entity<Model>()
.Property(e => e.SubmittedOn)
.HasConversion(
v => v.ToString("MM/dd/yyyy"),
v => DateTime.Parse(v));
我相信数据库中只保存了日期部分,因此返回的DateTime字段中的00:00:00时间。问题在于JSON序列化。据我记忆所及,[DataType(DataType.Date)]属性过去适用于此,但由于某些原因,现在不适用(欢迎对此发表任何评论)。现在,您可以在这里做两件事(请注意,这假设您正在使用NewtonsoftJson或愿意在.net core 3.x中使用它。对于System.Text.Json,它是.net Core3.x的默认序列化程序,您可以使用System.Text.Json在ASP.net core 2.0中引用此格式化日期时间):
>
制作自定义转换器,如下所示:
public class MyCustomDateConverter : IsoDateTimeConverter
{
public MyCustomDateConverter()
{
//Here you can define any format that is allowed in C#.
DateTimeFormat = "dd/MM/yyyy";
}
}
现在回到DateTime字段,您将实际使用它
[JsonConverter(typeof(MyCustomDateConverter))]
[Column(TypeName = "date")]
public DateTime SubmittedOn { get; set; }
因此,通过这种方式,您可以将转换器用于您想要的每个字段。
或者,如果您使用的是ASP.NET核心,那么在JSON中序列化时,您可以为所有日期字段设置一个全局格式。在启动类中,将它添加到ConfigureServices方法中
对于.net之前的core 3.x
services.AddJsonOptions(
options =>
{
options.SerializerSettings.DateFormatString = "dd/MM/yyyy";
}
);
对于. net核心3. x
services.AddControllers()
.AddNewtonsoftJson(
options =>
{
options.SerializerSettings.DateFormatString = "dd/MM/yyyy";
}
);
我有以下应该返回时间戳的函数。当使用以下斜杠以字符串格式输入日期时,此代码有效:“2019/3/4”,但在使用 怎么回事?
Edit:不幸的是,我需要以日期的形式获得结果,而不是字符串,所以我不能使用sdf.format(New Date().getTime()),因为它返回字符串。另外,我需要返回的日期是当前时间的日期,而不是来自静态字符串。我希望这能澄清
问题内容: 我对以下行为感到非常困惑。我从一个方法返回2日期作为字符串: 我添加了一个屏幕截图,显示返回的日期分别为“ 2018-06-20 00:00:00”和“ 2018-06-24 00:00:00”,并保留了调试跟踪以显示 值。 我只是想将日期转换为20180620格式。 方法: …接受字符串值 我不明白“ 2017年12月6日星期三00:00:00 GMT”的日期是哪里 ?这是最终 作为
周日->明谷-0 周一->赛宁-1 周二->Selasa-2 帮我谢谢
我正在寻找将PHP日期格式(即Y-m-d H:I:s)转换为javascript日期格式(分别为YYYY-mm-dd HH:mm:ss)的简单方法。 我不想转换日期(这个问题已经有答案),我正在寻找工具/函数来转换格式代码(我还不知道,因为它是由应用程序中的用户定义的)。 用户可以用PHP date()定义的不同方式来定义它,即“Y/m/d H:i”或“Y-d-m H-i”,在javascript
问题内容: 我有一个包含表的MySQL数据库。 但是,我找不到在Java中将其作为Java中某种对象返回的方法。 我可以打电话给它,它会返回,但这并不好,因为没有办法比较字符串上的日期等。 我也可以打电话,但这根本不返回时间。 问题答案: 您需要使用Thomas的注释中建议的getTime()或getTimestamp()方法。举个例子… 说出要查询的表格,如下所示: 您可以这样做: 如果要使用J