仅使用日期时间获取当前日期时的日期格式不同
Posted
技术标签:
【中文标题】仅使用日期时间获取当前日期时的日期格式不同【英文标题】:different between date format when get current date only using datetime 【发布时间】:2017-01-17 02:42:37 【问题描述】:如果我的计算机日期时间格式为 yy/mm/dd 或 mm/dd/yyyy 或不管格式
Datetime date1 = ... /// assume date1 is date1 < date2 and date1 < date3
DateTime date2 = DateTime.Parse(DateTime.Now.ToString("dd-MM-yyyy")) ;
DateTime date3 = DateTime.Now.Date;
DateTime.Compare(date1 ,date2); and DateTime.Compare(date1 ,date3);
结果如何?是 date2
和 date3
在比较 date1
时返回 1 吗?
DateTime.Parse(DateTime.Now.ToString("dd-MM-yyyy")
等于 DateTime.Now.Date
?
【问题讨论】:
date1
是什么?您的代码显示 ...
并定义了两次 date2
@Alex 更新了问题。
@theinarasu - 你知道DateTime
类型确实没有 有格式,而且只有当你将它解析或输出为string
时,你才有一种格式? string
有一个格式。
【参考方案1】:
不知道你为什么要DateTime.Parse(DateTime.Now.ToString("dd-MM-yyyy"));
..?
要回答您的问题,date2
和 date3
将根据您的计算机(或运行此代码的设备)本地化而有所不同。
因此,如果date1
总是更早,您可以执行TimeSpan diff = date3 - date1;
,这将为您提供TimeSpan
对象。然后可以diff.Days
获取天数差。
是的,date3
里面只有日期。时间将设置为午夜 12:00。见here。
TimeSpan.Days
【讨论】:
这是错误的做法吗?如果有错误请纠正我,我这样做的主要目的是只获取当前日期而没有时间,DateTime.Now.date 这将返回时间 12.00pm 现在将日期时间解析为字符串并返回是非常错误的。 i18n 会杀了你。 感谢您指出...但是 DateTime.now.Date 的返回时间为 12.00 AM .. 当 Datetime.compare 时会导致任何问题,因为 date1 值仅与日期一起传入没有时间 @theinarasu 查看this answer 所有 DateTime 对象都有时间。如果没有传递时间,则默认为 12.00AM / 00:00【参考方案2】:如果您只想要没有时间的日期,那么您可以尝试 字符串 x = DateTime.Now.ToShortDateString(); 结果将是 x = "09-09-2016"
【讨论】:
以上是关于仅使用日期时间获取当前日期时的日期格式不同的主要内容,如果未能解决你的问题,请参考以下文章