如何在java中添加10小时的当前日期和时间

时间:2014-09-04 11:22:41

标签: java android

 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请帮助我在哪里做错了。

4 个答案:

答案 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());

    }

}

enter image description here

答案 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);