java获取当前时间加半小时之后的时间

代码如下:
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取中国的时区
sdf.setTimeZone(timeZoneChina);
String time = sdf.format( now );
Date dt = sdf.parse(time);
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.HOUR_OF_DAY,1);//时间减半小时
Date dt1 = rightNow.getTime();
String reStr = sdf.format(dt1);
return reStr;
如何修改?最好能简化一下代码,而且获取系统时间比准确时间少8小时,加了代码TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");才能正常……

一、步骤如下:

long currentTime = System.currentTimeMillis() + 30 * 60 * 1000;

Date date = new Date(currentTime);

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime="";
nowTime= df.format(date);
System.out.println(nowTime);

二、分析:

1、获取当前时间,获取到的时间类型是long类型的,单位是毫秒

2、在这个基础上加上30分钟:currentTime +=30*60*1000;

3、格式化时间,获取到的就是当前时间半个小时之后的时间Date date=new Date(currentTime);

4、建立时间格式化对象:

SimpleDateFormat dateFormat = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss");

扩展资料

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。

不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK

另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境

(参考资料 百度百科 Java

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-11-08

可以用System.currentTimeMillis()方法直接获得当前时间的毫秒数,再往后推算30分钟。码如下:

Long time = System.currentTimeMillis();//获得系统当前时间的毫秒数

System.out.println("获取当前系统时间为:"+new SimpleDateFormat("yyyy年-MM月dd日-HH时mm分ss秒").format(time));//转换成标准年月日的形式

Date date = new Date(time);

time +=30*1000*60;//在当前系统时间的基础上往后加30分钟

System.out.println("三十分钟后的时间为:"+new SimpleDateFormat("yyyy年-MM月dd日-HH时mm分ss秒").format(time));

系统运行结果如下:

扩展资料:

Java获得系统当前时间的四种方法如下:

1、Date day=new Date();    

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

System.out.println(df.format(day));   

通过Date类来获取当前时间    

2、SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   System.out.println(df.format(System.currentTimeMillis()));   

通过System类中的currentTimeMillis方法来获取当前时间 

3、Calendar c = Calendar.getInstance();//可以对每个时间域单独修改   

int year = c.get(Calendar.YEAR);  

int month = c.get(Calendar.MONTH);   

int date = c.get(Calendar.DATE);    

int hour = c.get(Calendar.HOUR_OF_DAY);   

int minute = c.get(Calendar.MINUTE);   

int second = c.get(Calendar.SECOND);    

System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);    

通过Calendar类来获取当前时间   

4、 Date date = new Date();    

String year = String.format("%tY", date);   

String month = String.format("%tB", date);   

String day = String.format("%te", date);    

System.out.println("今天是:"+year+"-"+month+"-"+day);   

通过Date类来获取当前时间   

参考资料:

Oracle官方API接口-Java™ Platform, Standard Edition 7API Specification

W3cSchool-Java 日期时间方法

菜鸟教程-Java 日期时间




本回答被网友采纳
第2个回答  推荐于2017-11-13

java获取当前时间加半小时之后的时间:

1、获取当前时间,获取到的时间类型是long类型的,单位是毫秒

long currentTime = System.currentTimeMillis() ;

2、在这个基础上加上30分钟:

currentTime +=30*60*1000;

3、格式化时间,获取到的就是当前时间半个小时之后的时间

Date date=new Date(currentTime);

4、建立时间格式化对象:

SimpleDateFormat dateFormat = new SimpleDateFormat(

"yyyy-MM-dd HH:mm:ss");


完整代码:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo {
public static void main(String[] args) {
long curren = System.currentTimeMillis();
curren += 30 * 60 * 1000;
Date da = new Date(curren);
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(da));
}
}

本回答被网友采纳
第3个回答  推荐于2017-12-04

不用那么繁杂的操作,下面即可:

Calendar now=Calendar.getInstance();

  now.add(Calendar.MINUTE,30);

  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  String dateStr=sdf.format(now.getTimeInMillis());

  System.out.println(dateStr);

本回答被提问者和网友采纳
第4个回答  2017-12-01
写代码思路不清,搞个date类型变量,没有用上
public static void main(String[] args) {
Calendar now=Calendar.getInstance();

now.add(Calendar.MINUTE,30);

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String later=sdf.format(now.getTimeInMillis());

System.out.println(later );
}