У меня есть вопрос, связанный с преобразованием / форматированием даты.
У меня есть дата, скажем, workDate со значением, например: 2011-11-27 00:00:00
Из текстового поля ввода я получаю значение времени (в виде строки) в форме «ЧЧ: мм: сс», например: «06:00:00»
Моя задача - создать новую дату, скажем, newWorkDate, имеющую тот же год, месяц, дату, что и workDate, и время, которое будет входным значением текстового поля.
Таким образом, в этом случае newWorkDate должно быть равно 2011-11-27 06:00:00.
Можете ли вы помочь мне понять, как этого можно достичь с помощью Java?
Вот что у меня есть:
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
//Text box input is converted to Date format -what will be the default year,month and date set here?
Date textBoxTime = df.parse(minorMandatoryShiftStartTimeStr);
Date workDate = getWorkDate();
int year = Integer.parseInt(DateHelper.getYYYYMMDD(workDate).substring(0, 4));
int month = Integer.parseInt(DateHelper.getYYYYMMDD(workDate).substring(4, 6));
int date = Integer.parseInt(DateHelper.getYYYYMMDD(workDate).substring(6, 8));
Date newWorkDate = DateHelper.createDate(year, month, day);
//not sure how to set the textBox time to this newWorkDate.
[UPDATE]: Thx for the help,guys!Here is the updated code based on all your suggestions..Hopefully this will work.:)
String[] split = textBoxTime.split(":");
int hour = 0;
if (!split[0].isEmpty)){
hour = Integer.parseInt(split[0]);}
int minute = 0;
if (!split[1].isEmpty()){
minute = Integer.parseInt(split[1]);}
int second = 0;
if (!split[2].isEmpty()){
second = Integer.parseInt(split[2]);}
Calendar cal=Calendar.getInstance();
cal.setTime(workDate);
cal.set(Calendar.HOUR, hour);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, second);
Date newWorkDate = cal.getTime();