我有一个日期字符串,格式为 hh:mm。我想将其转换为 yyyy-MM-dd HH:mm:ss 这种格式并将其转换为 UTC 时区并将其保存到数据库中。
我试过这个:
private void returnPickupTimeUTC(){
String pickupTime = "04:05 pm";
Date pickDate = null;
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a",Locale.US);
try{
pickDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(pickupTime);
} catch (ParseException ex){
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(pickDate);
Date time = calendar.getTime();
SimpleDateFormat outputFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.US);
outputFmt.setTimeZone(TimeZone.getTimeZone("UTC"));
pickupTimeStr =outputFmt.format(time);
System.out.println(outputFmt.format(time));
}
这是我的解决方案:
private void returnPickupTimeUTC() {
try {
String pickupTime = "04:05 pm";
// Use this to get hour and minute from `pickupTime`
SimpleDateFormat defaultSdf = new SimpleDateFormat("hh:mm a", Locale.getDefault());
Calendar pickUpDate = Calendar.getInstance(Locale.getDefault());
pickUpDate.setTime(defaultSdf.parse(pickupTime));
// Set the hour and minute for current date.
Calendar now = Calendar.getInstance(Locale.getDefault());
now.set(Calendar.HOUR, pickUpDate.get(Calendar.HOUR));
now.set(Calendar.MINUTE, pickUpDate.get(Calendar.MINUTE));
// Convert `pickupTime` from "hh:mm a" to "yyyy-MM-dd HH:mm:ss" with UTC time zone.
SimpleDateFormat utcSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
utcSdf.setTimeZone(TimeZone.getTimeZone("UTC"));
pickupTimeStr = utcSdf.format(now.getTime());
System.out.println(pickupTimeStr);
} catch (ParseException e) {
e.printStackTrace();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句