我在项目中有以下要求.
我有一个名称输入字段startDate,用户输入格式YYYY-MM-DD HH:MM:SS.我需要在startDate字段中为用户输入添加两个小时.我该怎么做.
提前致谢
Ade*_*ari 44
您可以使用SimpleDateFormat将String转换为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();
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提供了更多便利.
试试这个,我测试过,工作正常
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)