网站首页 > java教程 正文
最近开发工作过程中遇到一些日期时间相关的问题,发现有些东西都忘了,空闲的时候整理了一下,写了一个工具类。
package com.utils;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
/**
* 通过Date类获取时间
* @return
*/
public static String getDateByDate(){
Date date = new Date();
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
String dateStr=dateFormat.format(date);
System.out.println(dateStr);
return dateStr;
}
/**
* 通过Calendar类获取时间
* @return
*/
public static String getDateByCalendar(){
Calendar calendar = Calendar.getInstance();
Date date=calendar.getTime();
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
String dateStr=dateFormat.format(date);
System.out.println(dateStr);
return dateStr;
}
/**
* 通过字符串获取时间
* @param dateStr
* @return
*/
public static Date formString(String dateStr){
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
try {
Date date=dateFormat.parse(dateStr);
System.out.println(date);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 通过时间戳获取时间
* @param time
* @return
*/
public static String getByLong(long time){
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-HH-dd HH:mm:ss");
String date=dateFormat.format(time);
return date;
}
/**
* 获取系统时间,时间戳
* @return
*/
public static long getCurrentTime(){
//方式一
// Date date = new Date();
// long time=date.getTime();
//方式二
long time=System.currentTimeMillis();
return time;
}
/**
* 获取当前年月日
* @return
*/
public static void getYearMonthDay(){
//第一种,通过Calendar类获取
Calendar now = Calendar.getInstance();
System.out.println("年: " + now.get(Calendar.YEAR));
System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");
System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));
System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));
System.out.println("分: " + now.get(Calendar.MINUTE));
System.out.println("秒: " + now.get(Calendar.SECOND));
System.out.println("当前时间毫秒数:" + now.getTimeInMillis());
//第二种,通过Date类获取
Date date = new Date();
DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
System.out.println(df1.format(date));
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
System.out.println(df2.format(date));
DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
System.out.println("只显示出时分秒:"+df3.format(date));
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)
System.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date));
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
System.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date));
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
System.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date));
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
System.out.println("显示日期,时间(精确到分):"+df7.format(date));
String [] dates=new SimpleDateFormat("yyyy-MM-dd").format(date).split("-");
String year=dates[0];
String month=dates[1];
String day=dates[2];
String [] months=new SimpleDateFormat("HH:mm:ss").format(date).split(":");
String hour=dates[0];
String minute=dates[1];
String seconde=dates[2];
}
/**
* 获取前一段时间/后一段时间
*/
public static void beforTime(){
//根据现在时间计算
Calendar now = Calendar.getInstance();
now.add(Calendar.YEAR, 1); //现在时间是1年后
System.out.println(now);
now.add(Calendar.YEAR, -1); //现在时间是1年前
System.out.println(now);
//根据某个特定的时间 date (Date 型) 计算
Calendar specialDate = Calendar.getInstance();
specialDate.setTime(new Date()); //注意在此处将 specialDate 的值改为特定日期
specialDate.add(Calendar.YEAR, 1); //特定时间的1年后
System.out.println(specialDate);
specialDate.add(Calendar.YEAR, -1); //特定时间的1年前
System.out.println(specialDate);
}
/**
* 计算两个日期相差多少小时,分钟,毫秒
*/
public static void betweenDay() throws ParseException {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = df.parse("2017-12-20 12:19:19");
Date d2 = df.parse("2017-12-20 11:40:34");
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
long ns = 1000;
// 获得两个时间的毫秒时间差异
long diff = d1.getTime() - d2.getTime();
// 计算差多少天
long day = diff / nd;
// 计算差多少小时
long hour = diff % nd / nh;
// 计算差多少分钟
long min = diff % nd % nh / nm;
// 计算差多少秒//输出结果
long sec = diff % nd % nh % nm / ns;
System.out.println(day + "天" + hour + "小时" + min + "分钟"+ sec + "秒");
}
public static void main(String[] args) {
// getDateByDate();
// formString("2021-15-27 15:42:44");
// getYearMonthDay();
}
}
猜你喜欢
- 2024-09-27 JAVA中计算两个日期时间的差值竟然也有这么多门道
- 2024-09-27 一个MySQL时间戳精度引发的血案(mysql时间戳字段)
- 2024-09-27 前端大佬问我MySQL怎么查询最近10分钟的数据?我是这么回答他的
- 2024-09-27 如何将ABAP时间戳转换为JAVA时间戳,原理是什么呢?
- 2024-09-27 JAVA8时间工具类(java8时间工具类有哪些)
- 2024-09-27 Java中有哪些可以用于日期和时间的API?
- 2024-09-27 java的时间戳的长度为什么是固定的?它是如何做到的
- 2024-09-27 Java中关于时间的那些处理方法(java中时间的数据类型)
- 2024-09-27 Java基于JWT的token认证(基于jwt的token验证)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)