我需要在Calendar Java对象中存储一个日期/时间,该日期/时间由今天的日期加上从HH:mm:ss格式的字符串解析而来的时间组成。
我尝试创建一个新的解析,并使用setTime()使用调用SimpleDateFormat的GregorianCalendar ()方法的结果对其进行初始化,但随后我注意到parse()返回给我一个Date对象,该对象具有正确的解析时间,但日期为1970年1月1日。
例如:
String time = "23:32";
String timeFmt = new SimpleDateFormat("HH:mm");
Calendar todaysTime = new GregorianCalendar();
todaysTime.setTime(timeFmt.parse(time));
System.out.println(todaysTime.getTime());我所期望的是:Wed 03 11:32:00 CST 2015:Thu Jan 01 11:32:00 CST 1970
我只能看到一种选择:创建第二个带有todays日期的GregorianCalendar,然后通过setYear()、setMonth()和setDayOfMonth()手动将年、月和日设置到todaysTime中,但我希望有一种更优雅的方法来做到这一点。
你能帮我找到一种更好的方法来解析解析成Date对象的时间部分而不丢失日期部分吗?
发布于 2015-06-04 14:02:50
你可以这样做:
Date parsedDate = SimpleDateFormat.getInstance().parse(time);
Calendar instance = Calendar.getInstance();
instance.setTime( parsedDate );
Calendar result = Calendar.getInstance();
result.set( Calendar.HOUR_OF_DAY, instance.get( Calendar.HOUR_OF_DAY ) );
result.set( Calendar.MINUTE, instance.get( Calendar.MINUTE ) );https://stackoverflow.com/questions/30636017
复制相似问题