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

use*_*094 30 java datetime

我在项目中有以下要求.

我有一个名称输入字段startDate,用户输入格式YYYY-MM-DD HH:MM:SS.我需要在startDate字段中为用户输入添加两个小时.我该怎么做.

提前致谢

Ade*_*ari 44

您可以使用SimpleDateFormat将String转换为Date.之后你有两个选择,

  • 创建一个Calendar对象,然后使用它来添加两个小时,或
  • 从该日期对象获取以毫秒为单位的时间,并添加两个小时,如(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();
    
    Run Code Online (Sandbox Code Playgroud)

    要么,

    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);
    
    Run Code Online (Sandbox Code Playgroud)

看看这些教程.


Rob*_*ska 33

作为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);
Run Code Online (Sandbox Code Playgroud)

如果您仍然需要使用java.util.Date之前的对象/这种转换之后,乔达DateTimeAPI提供了一些方便toDate()toCalendar()容易的翻译方法.

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

  • 每个人都应该是Joda的粉丝.我用过的最好的图书馆.+1 (2认同)

Lal*_*iya 6

试试这个,我测试过,工作正常

Date date = null;
String str = "2012/07/25 12:00:00";
DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
date = formatter.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 2);
System.out.println(calendar.getTime());  // Output : Wed Jul 25 14:00:00 IST 2012
Run Code Online (Sandbox Code Playgroud)

如果你想在你的输入类型中转换而不是添加这个代码

formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
str=formatter.format(calendar.getTime());
System.out.println(str);  // Output : 2012-07-25 14:00:00
Run Code Online (Sandbox Code Playgroud)