Java中时间格式处理,指定N天/小时等之后的时间
时间:2019-08-28
本文章向大家介绍Java中时间格式处理,指定N天/小时等之后的时间,主要包括Java中时间格式处理,指定N天/小时等之后的时间使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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中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); }
原文地址:https://www.cnblogs.com/qianjinyan/p/11413326.html
- Spring中的事件驱动模型(一)
- Python 深浅拷贝
- Spring Cloud Bus中的事件的订阅与发布(一)
- css hover对其包含的元素进行样式设置
- JSON 数据使用方法
- Eureka Server之间的注册表信息同步
- .NET Core 观察者模式 以及 delegate 和 event
- webapp设置适应pc和手机的页面宽高以及布局层叠图片文字
- 比较Spring AOP与AspectJ
- Promise原理解析与实现
- Spring Cloud 覆写远端的配置属性
- C语言心得一
- .NET Core装饰模式和.NET Core的Stream
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 日常工作中的设计:解耦和封装
- 详解Gson的TypeToken原理
- 时间序列分解和异常检测方法应用案例
- 为什么机器学习应用交易那么难(上)
- 快速学习-sentinel动态规则扩展
- Git-git diff命令结果解析
- 快速学习-sentinel实时监控
- Git技术干货!工作中Git的使用实践和常用命令合集!
- gremlin-both()与bothE().bothV()的区别
- C# Time.deltaTime 增量时间
- Docker--docker ps 命令与结果解析
- Junit5系列-Junit5中@DisplayName自定义名称
- Junit5系列-Junit5中Assertions断言类
- 使用libev监视文件夹下文件(夹)属性变动的方案和实现
- C++拾取——stl标准库中集合交集、并集、差集、对称差方法