C# 如何查看当前日期和时间?
我想查看当前的日期和时间 我所做的:C# 如何查看当前日期和时间?,c#,asp.net,asp.net-mvc,entity-framework,date,C#,Asp.net,Asp.net Mvc,Entity Framework,Date,我想查看当前的日期和时间 我所做的: 在Vs 2013社区中为asp.net mvc5(c#)创建了一个新项目 为我的数据库添加了一个edmx。所以首先是数据库 使用Add>new Scaffold item为我的每个数据库类添加了模型视图控制器 VS为CRUD操作创建了视图和控制器 现在视图中有两个字段,分别表示日期和时间 早期的VS创建了简单的文本框,但我在模型中添加了注释,所以它在视图中创建了Datepicker和TimePicker 我想要的是两个字段中的当前日期和时间 型号: [Dat
[DataType(DataType.Date)]
public Nullable<System.DateTime> Date { get; set; }
[DataType(DataType.Time)]
这些是日期和时间选择器。我想知道当前的实际日期和时间
到目前为止,我所尝试的:
使用@value=@model.returndate=DateTime.Now代码>
model.returndate总是给出错误。我尝试在控制器和视图中使用
使用Viewbag.Date=DateTime.Now代码>和视图中的@Value=@Viewbag.Date
什么都没有发生 当您使用模型
和编辑器
显示模型属性中的日期时,您应该在返回视图之前进行设置:
public ActionResult Create()
{
return View(new YourModel { Date = DateTime.Now } );
}
绑定到模型属性时,必须在模型属性上或在ModelState
中设置要存在的值(由Request
、ViewData
和ViewBag
中的值组成)
出于您在此处的目的,最合适的方法是设置模型属性的值。您可以按照@ken2k的建议手动执行,也可以使用自定义getter将其设置为属性的默认值:
[DataType(DataType.Date)]
private DateTime? date;
public DateTime Date
{
get { return date ?? DateTime.Today; }
set { date = value; }
}
[DataType(DataType.Time)]
private DateTime? time;
public DateTime time
{
get { return time ?? DateTime.Now; }
set { time = value; }
}
现在,这两个属性将始终设置为显式值或当前日期/时间
注意:我使用了DateTime.Now
作为时间值,但是您应该小心。通常,您应该始终使用UTC表示时间,然后根据需要转换为本地或从本地转换。主要问题是ASP.NET中的本地时间是服务器时间,这可能是用户操作的时间,也可能不是您的组织操作的时间。特别是如果你在Azure中建立一个站点,或者类似于在不同国家/地区进行负载平衡以获得更高的可用性,那么本地时间将变得毫无意义,实际上是灾难性的。在到处查看之后,我这样做是为了实现我的目标,即查看当前日期和时间
因为这是数据库优先的方法,所以我需要找到model类,它位于model.edmx>model.tt>mycalss.cs下
然后我添加了注释,如Chris Pratt的答案。这给了我日期和时间,但没有日期选择器
现在我转到nuget包管理,在项目中添加了jQueryUI。到这里:
它给了我一个漂亮的,移动友好的日期选择器和当前日期 对。对在这里输入问题。在将模型返回到视图之前,需要在GET方法中设置值-model.Date=DataTime.Today;返回视图(模型)
并且您需要将[DisplayFormat(DataFormatString=“{0:yyyy-MM-dd}”,ApplyFormatInEditMode=true)]
属性应用于属性(注意ISO格式),这对我来说是新的。model.Date=DataTime.Today;给出错误“名称模型在当前上下文中不存在”。您需要首先在GET方法-var model=new YourModel()中初始化模型;model.Date=DateTime.Today;返回视图(模型)
(您应该始终将模型的实例返回到视图中注意,
这是EditorFor()
生成的,仅在Chrome中受支持。在IE和FireFox中,它只会显示一个普通的文本框。如果您想要一致的UI,最好使用jquery日期选择器。所做的是:在我的模型中[DataType(DataType.Date)]私有日期时间?日期;公共日期时间日期{get{return Date??DateTime.Today;}在我的控制器中设置{Date=value;}}
在get的创建操作中:事务tr=new Transaction();tr.Date=DateTime.Now;
这个给定的日期和时间也在同一个文本框中。[DataType(DataType.time)]私有DateTime?time;公共DateTime时间{get{return time??DateTime.Now;}设置{time=value;}
引发异常:您的EDMX与实体类不同步。您需要更新您的EDMX和/或您的数据库(如果EDMX是由此生成的)。或者,扔掉所有的EDMX垃圾,先使用代码。请参阅:
public ActionResult Create()
{
return View(new YourModel { Date = DateTime.Now } );
}
[DataType(DataType.Date)]
private DateTime? date;
public DateTime Date
{
get { return date ?? DateTime.Today; }
set { date = value; }
}
[DataType(DataType.Time)]
private DateTime? time;
public DateTime time
{
get { return time ?? DateTime.Now; }
set { time = value; }
}