如何将当前日期存储在Date对象中? 我尝试了这段代码,但是收到了错误:
SimpleDateFormat dtf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
Date date = new Date();
date=dtf.parse(dtf.format(( cal.get(cal.YEAR)+""+cal.get(cal.MONTH)+""+cal.get(cal.DAY_OF_MONTH))));
我想将今天[2016-09-20]的格式化日期存储在“日期”对象中。
答案 0 :(得分:4)
LocalDate.parse( "2016-09-20" )
LocalDate
您正在使用现在由java.time类取代的麻烦的旧遗留类。更糟糕的是,您正在尝试将仅限日期的值填充到具有java.util.Date
类的日期时间对象中。
LocalDate
类表示没有时间且没有时区的仅限日期的值。
您的输入字符串符合ISO 8601标准格式。默认情况下,java.time类使用ISO 8601格式来解析/生成字符串。所以不需要指定任何格式化模式。
LocalDate ld = LocalDate.parse( "2016-09-20" ) ;
要生成表示此值的String,请调用toString
。
String output = ld.toString() ; // 2016-09-20
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧日期时间类,例如java.util.Date
,.Calendar
和& java.text.SimpleDateFormat
现在位于Joda-Time的maintenance mode项目建议迁移到java.time。
要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。
大部分java.time功能都被反向移植到Java 6& ThreeTen-Backport中的7,并进一步适应Android中的ThreeTenABP(见How to use…)。
ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
和more。
答案 1 :(得分:0)
SimpleDateFormat dtf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
System.out.println(dtf.format(cal.getTime()));
Date date=new Date();
date=dtf.parse(dtf.format(cal.getTime()));