1)根据当前时间,获取具体的时刻的时间

N天前

M小时之前

可用

new Date().getTime() - 24 * 60 * 60 * 1000*N【N天之前】
的方法来获取处理时间之后的具体的值,
最终转化为想要的时间格式
import java.text.SimpleDateFormat;
import java.util.Date; public class getTime { public static void main(String[] args) { SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date time = new Date(new Date().getTime() - 24 * 60 * 60 * 1000);
System.out.println(sd.format(time));
System.out.println(sd.format(new Date())); //想获得N天之前或M天之后的时间
int NDay = 5;
int MDay = -10; //之后就传负数 Date timeN = new Date(new Date().getTime() - 24 * 60 * 60 * 1000 * NDay);
Date timeM = new Date(new Date().getTime() - 24 * 60 * 60 * 1000 * MDay); System.out.println(sd.format(timeN));
System.out.println(sd.format(timeM)); //想获得N小时之前或M小时之后的时间
int NHour = 5;
int MHour = -10; //之后就传负数 Date timeNHour = new Date(new Date().getTime() - 60 * 60 * 1000 * NHour);
Date timeMHour = new Date(new Date().getTime() - 60 * 60 * 1000 * MHour);
System.out.println(sd.format(timeNHour));
System.out.println(sd.format(timeMHour)); //想获得N分钟之前或M分钟之后的时间
int NMinute = 5;
int MMinute = -10; //之后就传负数 Date timeNMinute = new Date(new Date().getTime() - 60 * 1000 * NMinute);
Date timeMMiute = new Date(new Date().getTime() - 60 * 1000 * MMinute);
System.out.println(sd.format(timeNMinute));
System.out.println(sd.format(timeMMiute)); //想获得N秒之前或M秒之后的时间
int NSecond = 5;
int MSecond = -10; //之后就传负数 Date timeNSecond = new Date(new Date().getTime() - 1000 * NSecond);
Date timeMSecond = new Date(new Date().getTime() - 1000 * MSecond);
System.out.println(sd.format(timeNSecond));
System.out.println(sd.format(timeMSecond)); long Ntime = getDetailtime(3, 20, 1, 1);
System.out.println(sd.format(Ntime));
System.out.println(Ntime); Date Ntime2 = getDetailDate(3, 20, 1, 1);
System.out.println(sd.format(Ntime2));
System.out.println(Ntime2); } public static Date getDetailDate(int Day, int Hour, int Minute, int Second) {
Date timeN = new Date(new Date().getTime() - Day * 24 * 60 * 60 * 1000 - Hour * 60 * 60 * 1000 - Minute * 60 * 1000 - Second * 1000);
return timeN;
} public static long getDetailtime(int Day, int Hour, int Minute, int Second) {
long timeN = new Date().getTime() - Day * 24 * 60 * 60 * 1000 - Hour * 60 * 60 * 1000 - Minute * 60 * 1000 - Second * 1000;
return timeN;
} }

  那么想要更加具体的时间,比如让用户输入具体的天,时,分钟,秒等,可以获取更加精准的想要的时刻

public static Date getDetailDate(int Day, int Hour, int Minute, int Second) {
Date timeN = new Date(new Date().getTime() - Day * 24 * 60 * 60 * 1000 - Hour * 60 * 60 * 1000 - Minute * 60 * 1000 - Second * 1000);
return timeN;
} public static long getDetailtime(int Day, int Hour, int Minute, int Second) {
long timeN = new Date().getTime() - Day * 24 * 60 * 60 * 1000 - Hour * 60 * 60 * 1000 - Minute * 60 * 1000 - Second * 1000;
return timeN;
}

  

2) 根据java.util.Calendar中的操作

ca.add(Calendar.DATE, -N);【减去N天】
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; public class getTime2 { public static void main(String[] args) { SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int N=2; Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
ca.setTime(new Date()); //设置时间为当前时间
ca.add(Calendar.DATE, -N);
long timeDay= ca.getTime().getTime(); Calendar ca2 = Calendar.getInstance();//得到一个Calendar的实例
ca2.setTime(new Date()); //设置时间为当前时间
ca2.add(Calendar.HOUR, -N);
long timeDay2= ca2.getTime().getTime(); Calendar ca3 = Calendar.getInstance();//得到一个Calendar的实例
ca3.setTime(new Date()); //设置时间为当前时间
ca3.add(Calendar.MINUTE, -N);
long timeDay3= ca3.getTime().getTime(); Calendar ca4 = Calendar.getInstance();//得到一个Calendar的实例
ca4.setTime(new Date()); //设置时间为当前时间
ca4.add(Calendar.SECOND, -N);
long timeDay4= ca4.getTime().getTime(); System.out.println(sd.format(timeDay));
System.out.println(sd.format(timeDay2));
System.out.println(sd.format(timeDay3));
System.out.println(sd.format(timeDay4)); Calendar ca5 = Calendar.getInstance();//得到一个Calendar的实例
ca5.setTime(new Date()); //设置时间为当前时间
ca5.add(Calendar.MONTH, -N);
long timeDay5= ca5.getTime().getTime();
System.out.println(sd.format(timeDay5)); Calendar ca6 = Calendar.getInstance();//得到一个Calendar的实例
ca6.setTime(new Date()); //设置时间为当前时间
ca6.add(Calendar.YEAR, -N);
long timeDay6= ca6.getTime().getTime();
System.out.println(sd.format(timeDay6)); }
}

3)Java中Date 有一些不建议用的方法

4)运用已有的一些jar依赖,比如

org.apache.commons.lang3.time.DateUtils;

其中已经集成了的api

import org.apache.commons.lang3.time.DateUtils;

import java.text.SimpleDateFormat;
import java.util.Date; public class TestLongtime { public static void main(String[] args) { SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sd.format(new Date()));
System.out.println(sd.format(new Date().getTime())); Date now = new Date();
Date year = DateUtils.addYears(now, -2);
Date day = DateUtils.addDays(now, -2);
Date hour = DateUtils.addHours(now, -2);
Date minute = DateUtils.addMinutes(now, -2);
Date second = DateUtils.addSeconds(now, -2); //long bb = Long.parseLong(startDate.toString()); System.out.println(sd.format(year));
System.out.println(sd.format(day));
System.out.println(sd.format(hour));
System.out.println(sd.format(minute));
System.out.println(sd.format(second)); }
}

  

5)常用的String类型转换到long类型

long bb = Long.parseLong(startDate.toString());

6)Java中long类型的10位和13位的时间戳,转换为可供查看的时间格式

如果接口文档中规定的是String类型,要注意一定不能含有l,只能含有数字

public static String timestamp2Date(String str_num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (str_num.length() == 13) {
String date = sdf.format(new Date(toLong(str_num)));
System.out.println("将13位时间戳:" + str_num + "转化为字符串:" + date);
return date;
} else {
String date = sdf.format(new Date(toLong(str_num) * 1000));
System.out.println("将10位时间戳:" + str_num + "转化为字符串:" + date);
return date;
}
} public static long toLong(String obj) {
return Long.parseLong(obj);
} @Test
public void Te(){
String aaa = "1566802997242";
String bbb = "1566801239";
System.out.println(aaa.length());
System.out.println(bbb.length());
timestamp2Date(aaa);
timestamp2Date(bbb); }

Java中时间格式处理,指定N天/小时等之后的时间的更多相关文章

  1. Java中XML格式的字符串4读取方式的简单比较

    Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.Docum ...

  2. java中日期格式的转换和应用

    java中主要有3个类用于日期格式转换    DateFormat .SimpleDateFormat.Calendar SimpleDateFormat函数的继承关系: java.lang.Obje ...

  3. Java中日期格式(String、Date、Calendar)的相互转换

    package day20190318; import java.text.ParseException; import java.text.SimpleDateFormat; import java ...

  4. java中集合格式及json格式的特点和转换

    作者原创:转载请注明出处 今天在写代码,遇到一个难点,由于要调用webservice接口,返回的为一个list集合内容,从webservice调用接口返回的为一个string的io流, 在调用接口的地 ...

  5. JAVA中日期格式转换各个字母代表含义

    G  Era 标志符  Text  AD  y  年  Year  1996; 96  M  年中的月份  Month  July; Jul; 07  w  年中的周数  Number  27  W  ...

  6. 把Java中\u格式的unicode编码转成中文

    使用org.apache.commons.lang.StringEscapeUtils#unescapeJava(String)方法. 当然用org.apache.commons.lang.Strin ...

  7. JAVA中Sql时间格式与util时间格式转换

    关于时间格式转化: java.util.Date 与 java.sql.Date 互换 sql是子类 字符串转化成java.util.Date     SimpleDateFormat date =n ...

  8. Sql Server中日期时间格式化为字符串输出

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  9. java中存储mysql数据库时间类型【date、time、datetime、timestamp】

    在MySQL中对于时间的存储自己见表的时候都是设置的varchar类型的,感觉挺方便的. 昨天拿别人建好的表写代码,发现这张表中时间类型为datetime的,凭感觉试了一下不行,网上查了刚开始试了好几 ...

随机推荐

  1. MYSQL数据库数据类型

    07.14自我总结 MYSQL数据库数据类型 一.整数类型和浮点数典型 1.有符号/没符号 对于整数和负整数来说,默认情况下是有符号范围的 默认是有符号 有符号和没符号其实就是有没有包括负数,有符号是 ...

  2. Python基础总结之第四天开始【格式化‘字符串’】(新手可相互督促)

    年薪20万... 字符串格式化: 先看小案例-------: a = 'hello,my name is %s,I like %s.'%('XiaoHong','football') #在字符串中,[ ...

  3. IO流总结2

    2.字节流 |-- InputStream(读) |-- OutputStream(写) 由于字节是二进制数据,所以字节流可以操作任何类型的数据,值得注意的是字符流使用的是字符数组char[]而字节流 ...

  4. the license has been canceled

    ideal 的 注册码并没有失效,却显示这个信息 the license has been canceled 如果用的是Windows系统,在hosts文件添加下边的ip及映射 0.0.0.0 acc ...

  5. 【经验分享】ASP.NET 的 Page_Load 执行了2次,真的!

    发现问题 这是来自一位网友的提问: 本着求真务实的态度,我打开了 AppBoxPro 项目,本地调试果然发现 Page_Load 进入了两次! 其实在没测试之前,我就有了大概的方向,因为AppBoxP ...

  6. re模块学习

    一种模糊匹配的工具. 元字符有如下: . * {} [] + ? () \ ^ ,刚好十个. . : 代表单个任意字符,除换行符以外的 * :修饰前面的字符,代表前面字符出现0或者多次(无穷) {}: ...

  7. HTML 第4章初始CSS3

    什么是CSS? CSS全称为层叠样式表,通常又称为风格样式表. 引用CSS样式: 语法: <h1 styske="color:red;">style属性的应用</ ...

  8. 如何创建Github创库

    重点:利用Markdown语言写简单的日常使用的文本 基础写作和语法格式 本篇文章的内容来源于Github的基础写作帮助.如果在观看时有什么问题,可以直接查阅源文件.另外需要说明的是Git对Markd ...

  9. 【作品】超实用C++分数类

    引言 我们说,编程语言的精髓在于封装,而面向对象语言完胜面向过程语言的原因就是具有更好的可封装性,而C++就是这样的一种多范型语言,常用而复杂的工作完全不必在每一份源文件中重敲,就好像我们不需要自己手 ...

  10. Linux系统与程序监控工具atop教程

    引言 Linux以其稳定性,越来越多地被用作服务器的操作系统(当然,有人会较真地说一句:Linux只是操作系统内核:).但使用了Linux作为底层的操作系统,是否我们就能保证我们的服务做到7*24地稳 ...