我需要在Calendar
Java对象中存储由今天的日期组成的日期/时间加上从HH:mm:ss
格式的字符串解析的时间。
我尝试创建新的GregorianCalendar
并使用setTime()
初始化它,结果是调用SimpleDateFormat
的parse()方法但后来我注意到{{} 1}}返回一个parse()
对象,其中包含正确的解析时间,但日期为1970年1月1日。
例如:
Date
打印:String time = "23:32";
String timeFmt = new SimpleDateFormat("HH:mm");
Calendar todaysTime = new GregorianCalendar();
todaysTime.setTime(timeFmt.parse(time));
System.out.println(todaysTime.getTime());
我的期望是:Thu Jan 01 11:32:00 CST 1970
我只能看到一个替代方案:使用今天日期创建第二个Wed 03 11:32:00 CST 2015
,然后通过GregorianCalendar
,todaysTime
手动将年,月和日设置为setYear()
setMonth()
但我希望有一种更优雅的方式来做到这一点。
你能帮我找一个更好的方法来解析解析成setDayOfMonth()
对象的时间部分而不会丢失日期部分吗?
答案 0 :(得分:1)
您可以这样做:
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 ) );