如何将字符串转换为时间格式并添加两个小时

2022-09-01 10:09:13

我在项目中有以下要求。

我有一个按名称输入字段,用户输入的格式为.我需要为字段中的用户输入添加两个小时。我怎么能这样做。startDateYYYY-MM-DD HH:MM:SSstartDate

提前致谢


答案 1

您可以使用 SimpleDateFormat 将字符串转换为 Date。在那之后,你有两个选择,

  • 创建一个日历对象,然后使用它来添加两个小时,或者
  • 从该日期对象获取以毫秒为单位的时间,并添加两个小时,例如(2 * 60 * 60 * 1000)

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    // replace with your start date string
    Date d = df.parse("2008-04-16 00:05:05"); 
    Calendar gc = new GregorianCalendar();
    gc.setTime(d);
    gc.add(Calendar.HOUR, 2);
    Date d2 = gc.getTime();
    

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    // replace with your start date string
    Date d = df.parse("2008-04-16 00:05:05");
    Long time = d.getTime();
    time +=(2*60*60*1000);
    Date d2 = new Date(time);
    

请查看这些教程。


答案 2

作为Joda Time库的粉丝,以下是使用Joda DateTime的方法:

import org.joda.time.format.*;
import org.joda.time.*;

...    

String dateString = "2009-04-17 10:41:33";

// parse the string
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime dateTime = formatter.parseDateTime(dateString);

// add two hours
dateTime = dateTime.plusHours(2); // easier than mucking about with Calendar and constants

System.out.println(dateTime);

如果你仍然需要在此转换之前/之后使用对象,Joda API 提供了一些简单的 toDate()toCalendar() 方法,以便于翻译。java.util.DateDateTime

与Java Date/Calendar API相比,Joda API提供了更多便利。