9/4/2014 3:55:10 AM
这是我当前的日期和时间,我想添加+10小时,以便我与设备的当前时间匹配,请告诉我如何实施
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
String currentDateandTime =" 9/4/2014 3:55:10 AM ";
Date date = formatter.parse(currentDateandTime);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 10);
System.out.println("Time here "+calendar.getTime());
}
本规范正在尝试,但我无法进行Impalement请帮助我在哪里做错了。
答案 0 :(得分:1)
您的代码几乎正常运行,但您输了一个错字。您尝试在parse()
上调用尚未声明的formatter
。相反,您必须在parse()
上致电sdf
:
public static void main(final String[] args) throws Exception {
final SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
final String currentDateandTime = " 9/4/2014 3:55:10 AM ";
final Date date = sdf.parse(currentDateandTime);
final Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 10);
System.out.println("Time here " + calendar.getTime());
}
由于您使用的是12小时制,因此您可以像这样修改它:
public static void main(final String[] args) throws Exception {
final SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
final String currentDateandTime = "9/4/2014 3:55:10 AM";
final Date date = sdf.parse(currentDateandTime);
final Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 10);
System.out.println("Time here " + sdf.format(calendar.getTime()));
}
答案 1 :(得分:1)
如果您在1970年以后的日期开展业务,可以在一行代码中添加10小时到指定日期:
Date d1 = new Date(); // or sdf.parse()
Date d2 = new Date( d1.getTime() + 10 * 60 * 60 * 1000 ); // add 10h in millis
输出为:
Thu Sep 04 13:56:39 CEST 2014
Thu Sep 04 23:56:39 CEST 2014
答案 2 :(得分:0)
您没有创建DateFormat。试试这个:
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) throws ParseException {
String currentDateandTime = " 9/4/2014 3:55:10 AM ";
DateFormat formatter = DateFormat.getInstance();
Date date = formatter.parse(currentDateandTime);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 10);
System.out.println("Time here " + calendar.getTime());
}
}
答案 3 :(得分:0)
首先,如果您想了解计算机时钟的当前时间,您可以执行以下操作:
long now = System.currentTimeMillis();
将返回表示该时间戳的长整数。如果你想将它作为Date对象,你可以这样做:
Date now = new Date();
至于你的其余代码,逻辑看起来是正确的,这是我的代码片段,现在增加了10个小时。
Date now = new Date();
Calendar cal = new GregorianCalendar();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 10);
Date plus10 = calendar.getTime();
System.out.println(plus10);