这很奇怪。我有来自 Http GET 的日期格式数据,并使用模型类包装日期。是这样的,
// Model
public class wrapModel
{
public DateTime mydate{get; set;}
}
和,
// controller
[HttpGet]
public void myController(wrapModel data){
Response.Write(searchModel.mydate.ToString());
}
并使用浏览器调用控制器,myhost/home/myController/mydate=05/05/2012
然后它打印“5/5/2012 12:00:00 AM”,我预计只在 2012 年 5 月 5 日。
我不需要时间。所以我试图解析日期。
data.mydata = DateTime.parse(data.mydata.ToString("MM/dd/yyyy"));
但它仍然打印“5/5/2012 12:00:00 AM”
如何将格式更改为“2012 年 5 月 5 日”?
有知道的请指教~
谢谢!
我想解析来自 Http GET 的日期时间格式数据。
但我没有改变,也
[编辑]
感谢您的所有回答和您宝贵的时间!但我仍然有问题。请帮我多一点:)
首先,我需要 DateTime 格式的数据,而不是字符串类型,因为我将使用 Linq 中的日期来检索数据库日期。
我试过,
1)
[DisplayFormat(DataFormatString="{0:MM/dd/yyyy}", ApplyFormatInEditMode=true)]
public DateTime mydate { get; set; }
[HttpGet]
public ActionResult myController(wrapModel data){
return Content(searchModel.mydate.ToString());
}
仍然打印“5/5/2012 12:00:00 AM”
2)
[HttpGet]
public ActionResult myController(wrapModel data){
return Content(searchModel.mydate.ToString("MM/dd/yyyy"));
}
它也改变了格式,但我需要 DateTime 格式,所以我再次转换为 DateTime。
[HttpGet]
public ActionResult myController(wrapModel data){
searchModel.mydate = DateTime.Parse(searchModel.mydate.ToString("MM/dd/yyyy"));
return Content(searchModel.mydate.ToString());
}
然后它再次打印“5/5/2012 12:00:00 AM”。
3)
searchModel.etaDate.ToString("d")
与上面相同,转换为 DateTime 然后打印“5/5/2012 12:00:00 AM”
和
我使用 Response.Write() 进行简单的返回值测试,但是我不能使用 Response.Write() 方法有什么重要原因吗?我想学习 :)
非常感谢!
[编辑]
我需要为此输入 DateTime 类型的数据,
Repository myRespository = new Respository();
var data = (from x in myRepository.myContext
where x.thedate == mydate // thedate is datetime type, so I need datetime type for compare
select x.no).SingleOrDefault()
我试过,
string test = mydate.ToShortDateString();
(...
where x.thedate.ToString() == test
...)
但它不起作用。