Java 如何将正常日期转换为当前时间的日期
我面临以下问题,我有一个日期dd-mm-yyy,我需要将其转换为yyy-mm-dd-HH:mm,即使用给定的日期和当前的小时和分钟 例如: 给定日期:2014年6月11日,我应该得到2014年6月11日09:30 我已经尝试过此代码,但我得到的是2014-06-10 00:00您得到的是00:00,因为您在2014-11-06中传递的信息不包含小时或分钟Java 如何将正常日期转换为当前时间的日期,java,date,datetime,Java,Date,Datetime,我面临以下问题,我有一个日期dd-mm-yyy,我需要将其转换为yyy-mm-dd-HH:mm,即使用给定的日期和当前的小时和分钟 例如: 给定日期:2014年6月11日,我应该得到2014年6月11日09:30 我已经尝试过此代码,但我得到的是2014-06-10 00:00您得到的是00:00,因为您在2014-11-06中传递的信息不包含小时或分钟 如果要在转换后的时间中输入小时:分钟,则需要向输入中添加更多信息或获取当前的小时/分钟。必须使用两个日历实例,因为Calendar setTi
如果要在转换后的时间中输入小时:分钟,则需要向输入中添加更多信息或获取当前的小时/分钟。必须使用两个日历实例,因为Calendar setTime方法将小时和分钟设置为零
package com.ggl.testing;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class FormatDate {
private static final DateFormat inputDateFormat =
new SimpleDateFormat("dd-MM-yyyy");
private static final DateFormat outputDateFormat =
new SimpleDateFormat("yyyy-MM-dd HH:mm");
private Calendar calendar;
public String previousDateString(String dateString)
throws ParseException {
Calendar now = Calendar.getInstance();
calendar = Calendar.getInstance();
Date myDate = inputDateFormat.parse(dateString);
calendar.setTime(myDate);
calendar.set(Calendar.HOUR_OF_DAY,
now.get(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE,
now.get(Calendar.MINUTE));
return outputDateFormat.format(calendar.getTime());
}
public static void main(String[] args) {
String dateString = "10-06-2014";
try {
String output =
new FormatDate().previousDateString(dateString);
System.out.println(output);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
输出-2014-06-10 10:47如果您可以选择使用Java 8,则可以编写如下解决方案:
private LocalTime startOfDay = LocalTime.of(9, 30);
public String previousDateString(String dateString) {
LocalDate yesterday = LocalDate.parse(dateString, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalDateTime yesterdayTime = LocalDateTime.of(yesterday, startOfDay);
return yesterdayTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
}
您得到00:00是因为您没有在代码中的任何位置设置当前时间。我也不知道你为什么要删减一天?
private LocalTime startOfDay = LocalTime.of(9, 30);
public String previousDateString(String dateString) {
LocalDate yesterday = LocalDate.parse(dateString, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
LocalDateTime yesterdayTime = LocalDateTime.of(yesterday, startOfDay);
return yesterdayTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
}