博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【代码积累】Date split
阅读量:4099 次
发布时间:2019-05-25

本文共 3725 字,大约阅读时间需要 12 分钟。

import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.Iterator;import java.util.List;public class Test 
{ public void test() { /*指定一个日期,获取其UTC时间,然后通过显示出来. * * @param year the year minus 1900. * @param month the month between 0-11. * @param date the day of the month between 1-31. * @param hrs the hours between 0-23. * @param min the minutes between 0-59. * @param sec the seconds between 0-59. * @see java.util.Calendar * @deprecated As of JDK version 1.1, * replaced by
Calendar.set(year + 1900, month, date, * hrs, min, sec) or
GregorianCalendar(year + 1900, * month, date, hrs, min, sec). * */ // Calendar cal = Calendar.getInstance();// cal.set(2016, 8, 25, 15, 51, 55); /*注意month,是从0开始的,值范围为[0,11]*/// // long currentsystime = System.currentTimeMillis()/1000;// long specifiedtime = cal.getTimeInMillis()/1000;// System.out.println("Current system time = "+(int)currentsystime);// System.out.println("Sepecified time = "+(int)specifiedtime);// // /*指定了一个日期,然后根据UTC time,反向获取年月日*/// int year = cal.get(Calendar.YEAR);// int month = cal.get(Calendar.MONTH);// int day = cal.get(Calendar.DAY_OF_MONTH);// System.out.println(year+"-"+month+"-"+day); /*============*/ long starttime = 0; long stoptime = 0; List
list = null; Calendar cal = Calendar.getInstance(); cal.set(2015, 9, 10, 20, 18, 38); starttime = cal.getTimeInMillis()/1000; cal.set(2015, 10, 11, 19, 10, 12); stoptime = cal.getTimeInMillis()/1000; list = timesplit(starttime,stoptime); System.out.println("list size = "+list.size()); System.out.println("**********************************"); System.out.println("**********************************"); if( 0 < list.size() ) { Iterator
it = list.iterator(); while( it.hasNext() ) { Timescale scale = (Timescale)it.next(); System.out.println("start time = "+(int)scale.begintime); System.out.println("stop time = "+(int)scale.endtime); System.out.println("**********************************"); } } // long tmp = 1444492799;// cal.setTimeInMillis(tmp*1000);// int year = cal.get(Calendar.YEAR);// int month = cal.get(Calendar.MONTH);// int day = cal.get(Calendar.DAY_OF_MONTH);// int hour = cal.get(Calendar.HOUR_OF_DAY);// int minite = cal.get(Calendar.MINUTE);// int second = cal.get(Calendar.SECOND);// System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minite+":"+second); } private void timesplitImpl(long starttime,long stoptime,List
list) { /* * 1、将UTC转成日期,取出 2015-9-10 23:59:59:000 的UTC时间,daytime 2、比较上述daytime与 stoptime的大小 stoptime 大:跨天 则 [starttime,daytime] 作为第一包的起止时间,将[daytime+1,stoptime] 作为下一组入参, stoptime 小:不跨天,直接下发一包请求*/ Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(starttime*1000); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); int day = cal.get(Calendar.DAY_OF_MONTH); /*get the day time*/ cal.set(year, month, day, 23, 59, 59); /*取当天结束时刻的UTC time*/ long daytime = cal.getTimeInMillis()/1000; /*转换成秒*/ /*compare daytime and stoptime*/ if( daytime < stoptime ) { list.add(new Timescale(starttime,daytime)); timesplitImpl(daytime+1,stoptime,list); } else { list.add(new Timescale(starttime,stoptime)); } return; } private List
timesplit(long starttime,long stoptime) { List
list = new ArrayList
(); timesplitImpl(starttime,stoptime,list); return list; } private class Timescale { public Timescale(long begintime,long endtime) { this.begintime = begintime; this.endtime = endtime; } long begintime = 0; long endtime = 0; }}

转载地址:http://mvhii.baihongyu.com/

你可能感兴趣的文章
OpenFeign学习(三):OpenFeign配置生成代理对象
查看>>
OpenFeign学习(四):OpenFeign的方法同步请求执行
查看>>
OpenFeign学习(五):OpenFeign请求结果处理及重试控制
查看>>
OpenFeign学习(六):OpenFign进行表单提交参数或传输文件
查看>>
OpenFeign学习(七):Spring Cloud OpenFeign的使用
查看>>
Ribbon 学习(二):Spring Cloud Ribbon 加载配置原理
查看>>
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>
XML生成(一):DOM生成XML
查看>>
XML生成(三):JDOM生成
查看>>
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
collect2: ld returned 1 exit status
查看>>
C#入门
查看>>
查找最大值最小值
查看>>
杨辉三角
查看>>
冒泡排序法
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
16、Memento 备忘录模式
查看>>
Java基础篇(一)
查看>>
数据库
查看>>