从日期中删除时间。并保持日期类型[重复]
Posted
技术标签:
【中文标题】从日期中删除时间。并保持日期类型[重复]【英文标题】:Removing time from date. and keeping the DATE type [duplicate] 【发布时间】:2015-03-29 14:34:58 【问题描述】:我有一个返回 calendar.getTime() 日期的日期对象。
然而,这个日期的格式是这样的:
("dd/MM/time/yyyy")
我想摆脱那个时间并仍然将日期保留为日期 因为我的应用程序的其余部分需要 DATE 类型才能运行 正确。我希望它显示为
("dd/MM/yyy")
我该怎么做?我看到的其他答案都要求你 将其更改为字符串。是否可以将其作为字符串和 然后回到没有时间的约会?
【问题讨论】:
docs.oracle.com/javase/7/docs/api/java/text/… developer.android.com/reference/java/text/SimpleDateFormat.html 如果您可以使用 Joda Time,我建议您使用LocalDate
- 这样一来,该值的含义就很明显了。
【参考方案1】:
一个日期对象总是有一个时间段。所以你不能有一个没有时间段的日期。您只能将时间段设置为零:
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
如果您只是将其转换为String
,您可以使用 SimpleDateFormat:
DateFormat df = new SimpleDateFormat("dd/MM/yyy");
String s = df.format(calendar.getTime());
【讨论】:
谢谢。那很有帮助。我设法以这种方式使用它。我刚刚意识到我只需要将它显示为一个字符串并将其作为日期进行编程,因为无论如何都没有人真正查看 DATE 版本。谢谢你这么清楚地回答我的问题。【参考方案2】:您可以使用 DateFormat
类执行此操作,如下所示:
Calendar cal = new GregorianCalendar(2015, 01, 30);
DateFormat df = android.text.format.DateFormat.getDateFormat(this);
String date = df.format(calendar.getTime());
getDateFormat(Context)
返回由系统语言环境定义的格式化程序。 (如果你想支持多日期格式(例如我们,德),那就太好了
【讨论】:
以上是关于从日期中删除时间。并保持日期类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从输入类型日期中删除“X”(清除按钮)并更改 Firefox 中的字体系列
仅从 sql server 中的日期数据类型中获取日期 [重复]