最近做的项目经常涉及到日期的操作,整理了一些常用操作。
示例:
- 获取当前日期,及数字显示和转换
- 日期修改,格式化日期输出
- 时间段内月份集合
一. 获取当前日期及数字转换 :
使用json传输数据库中Date对象时,传输的一个Long型整数,是1970年1月1日至今的毫秒数。在这里简单的试着转换了一下。
public static void Today(){ Calendar calendar = Calendar.getInstance(); System.out.println("今天的日期 "+calendar.getTime()); Date date = calendar.getTime(); System.out.println("数字型显示(1970年1月1日至今的毫秒数)"+date.getTime()); date.setTime(1533281628719L); //Long型整数 System.out.println("数字型转换"+date); }
输出:
今天的日期 Fri Aug 03 16:08:55 CST 2018
数字型显示(1970年1月1日至今的毫秒数)1533283735097
数字型转换Fri Aug 03 15:33:48 CST 2018
二. 日期修改,格式化日期输出
Calendar cal = Calendar.getInstance();
result.put("staTime", cal.get(Calendar.YEAR) + "年" + (cal.get(Calendar.MONTH) + 1) + "月" + (cal.get(Calendar.DATE)) + "日");
当时看到的是这个代码,cal.get(Calendar.MONTH)+1 因为MONTH是从0开始编码的,所以读取的时候需要加一
public static void TodayFormat(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.set(2018,9,10); calendar.add(Calendar.MONTH,-1); Date startDate = calendar.getTime(); String startDateString= sdf.format(startDate); System.out.println("格式化日期输出 "+startDateString); }
输出:
格式化日期输出 2018-09-10 16:08:55
设置为2018.9.10,实际为2018.10.10日。又进行了-1操作。输出日期为2018-09-10
三. 时间段内月份集合
这个是获取六个月统计数据,所以需要当前六个月月份集合
public static ArrayList<String> getMonthBetween(String minDate, String maxDate)throws Exception{ ArrayList<String> result = new ArrayList<String>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.setTime(sdf.parse(minDate)); min.set(min.get(Calendar.YEAR),min.get(Calendar.MONTH),1); max.setTime(sdf.parse(maxDate)); max.set(max.get(Calendar.YEAR),max.get(Calendar.MONTH),2); Calendar current = min; while(current.before(max)){ result.add(sdf.format(current.getTime())); current.add(Calendar.MONTH, 1); } return result; }
输出:
[2017-10, 2017-11, 2017-12, 2018-01, 2018-02, 2018-03, 2018-04, 2018-05, 2018-06, 2018-07, 2018-08, 2018-09, 2018-10, 2018-11, 2018-12, 2019-01]
附录. 测试代码
public static void main(String[] args) { Today(); TodayFormat(); String min = "2017-10"; String max = "2019-01"; ArrayList<String> result = new ArrayList<String>(); try{ result = getMonthBetween(min,max); }catch (Exception e){ } System.out.println(result); }