最近开发工作过程中遇到一些日期时间相关的问题,发现有些东西都忘了,空闲的时候整理了一下,写了一个工具类,今天小编就来说说关于java截取日期的年月日时间?下面更多详细答案一起来看看吧!
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(); }}