C# 日期字段格式转换

cain-won 2017-09-01 11:27:26
CREATE_TIME是DateTime格式,数据库中存放的是yyyy-mm-dd HH:mm:ss格式的。现在我需要在代码中转换成yyyy-mm-dd格式。转换之后仍然是DateTime格式。不要转换成string。以下是我的测试代码,三种方法返回的都是yyyy-mm-dd HH:mm:ss。
                string str = "2017-08-31";
row["CREATE_TIME"] = str;
row["CREATE_TIME"] = DateTime.Parse(str);//方法一
row.SetField("CREATE_TIME", str);//方法二
row["CREATE_TIME"] = Convert.ToDateTime(str);//方法三

有没大神知道问题在哪里?
...全文
748 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2017-09-03
  • 打赏
  • 举报
回复
DateTime就必须有Time,没有Time就不是DateTime类型了,.net框架还没有提供Date这样的类型吧
ilikeff8 2017-09-01
  • 打赏
  • 举报
回复
只要日期,那你只取日期部分,时间就都是0:0:0 DateTime datetime = DateTime.Now.Date; 如果不要时间部分,就不要填DateTime对象,直接格式化字符串
cain-won 2017-09-01
  • 打赏
  • 举报
回复
引用 4 楼 a755362405 的回复:
为什么一定要DateTime格式?
doc.MailMerge.Execute(row);把row的相关字段填入到word中,但是word里的时间只需要日期,不需要时间。所以我想换成yyyy-mm-dd的格式
cain-won 2017-09-01
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
DateTime是个结构,不是string,所有是没有你所谓的格式的。你所谓的格式只有在tostring("yyyy-MM-dd")的时候才会使用到
我是要把这个row写入到word。把row的相关字段填入到word中,doc.MailMerge.Execute(row);现在row["CREATE_TIME"]的值是“2017-08-31 00:00:00”,我要怎么将值变成“2017-08-31”?
键盘敲出字 2017-09-01
  • 打赏
  • 举报
回复
为什么一定要DateTime格式?
xuzuning 2017-09-01
  • 打赏
  • 举报
回复
DateTime 就是包括时间(Time)的 你要的是 Date 类型,但 C# 并未提供 或许你自己定义一个?
全栈极简 2017-09-01
  • 打赏
  • 举报
回复
DateTime d1 = DateTime.Parse("2017-08-31 12:34:56"); DateTime d2 = DateTime.Parse(d1.ToString("yyyy-MM-dd")); Console.WriteLine(d2.ToString("yyyy-MM-dd"));//2017-08-31
xdashewan 2017-09-01
  • 打赏
  • 举报
回复
DateTime是个结构,不是string,所有是没有你所谓的格式的。你所谓的格式只有在tostring("yyyy-MM-dd")的时候才会使用到
xdashewan 2017-09-01
  • 打赏
  • 举报
回复
引用 5 楼 kaijkl 的回复:
我是要把这个row写入到word。把row的相关字段填入到word中,doc.MailMerge.Execute(row);现在row["CREATE_TIME"]的值是“2017-08-31 00:00:00”,我要怎么将值变成“2017-08-31”?
能改类型就改类型吧
homesos 2017-09-01
  • 打赏
  • 举报
回复
引用 8 楼 kaijkl 的回复:
[quote=引用 7 楼 ilikeff8 的回复:] 只要日期,那你只取日期部分,时间就都是0:0:0 DateTime datetime = DateTime.Now.Date; 如果不要时间部分,就不要填DateTime对象,直接格式化字符串
因为这个row是要传给别个函数使用的doc.MailMerge.Execute(row)。现在row里的字段CREATE_TIME的值是“2017-08-31 0:0:0”,我想把这个值改成“2017-08-31”。也就是说不能改变CREATE_TIME字段的类型[/quote] 在不改变字段类型的情况下,只能在取出来后、使用前格式化一下,只保留年月日。
cain-won 2017-09-01
  • 打赏
  • 举报
回复
引用 7 楼 ilikeff8 的回复:
只要日期,那你只取日期部分,时间就都是0:0:0 DateTime datetime = DateTime.Now.Date; 如果不要时间部分,就不要填DateTime对象,直接格式化字符串
因为这个row是要传给别个函数使用的doc.MailMerge.Execute(row)。现在row里的字段CREATE_TIME的值是“2017-08-31 0:0:0”,我想把这个值改成“2017-08-31”。也就是说不能改变CREATE_TIME字段的类型

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧