近期开发设计工作中环节中碰到一些日期时间有关的问题,发觉有一些东西都忘记了,空余的情况下梳理了一下,写了一个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(\"现阶段时间ms数:\" 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);
}
/**
* 测算2个日期相距是多少钟头,min,ms
*/
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;
// 得到2个时间的ms时间差异
long diff = d1.getTime() - d2.getTime();
// 计算差多少天
long day = diff / nd;
// 计算差是多少小时
long hour = diff % nd / nh;
// 计算差多少min
long min = diff % nd % nh / nm;
// 计算差是多少秒//输出结论
long sec = diff % nd % nh % nm / ns;
System.out.println(day \"天\" hour \"小时\" min \"min\" sec \"秒\");
}
public static void main(String[] args) {
// getDateByDate();
// formString(\"2021-15-27 15:42:44\");
// getYearMonthDay();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。