有个功能,要获取当前时间以15分钟为间隔的集合数组,一开始用calendar.add(Calendar.MINUTE, -count);方法来获取当前时间前count分钟的时间,循环获取发现有问题,如:当前为10:02,第一次获取的时间为10:00是正确的,循环获取09:45的时间时,就不对了,目前不知道具体是什么原因造成的。现在采用了另外一个方法来获取,当前时间的毫秒数减去15分钟的毫秒数。不多说,看下面的代码:
package cn.sh.ideal.util;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class DateUtil {
/**
*
* @Title get15MinutesListByCurrentDate
* @Description 获取长度为length的、时间间隔为15分钟的、长度为length的List集合
* @param length
* @return
* @date Aug 17, 2012
*/
public static List<String> get15MinutesListByCurrentDate(long length) {
List<String> dateList = new ArrayList<String>();
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//时间格式
int minute = calendar.get(Calendar.MINUTE);// 得到分钟
int count = 0;
if (minute != 0 && minute != 15 && minute != 30 && minute != 45) { //时间不为00,15,30,45的情况
for (int i = minute; i >= 0; i--) { //判断距离最近的00,15,30,45的分钟数
if (i % 15 == 0) {
break;
} else {
count++;
}
}
}
calendar.add(Calendar.MINUTE, -count); //获取最近的分钟
int year = calendar.get(Calendar.YEAR); //得到年
int month = calendar.get(Calendar.MONTH) + 1; //得到月
int day = calendar.get(Calendar.DAY_OF_MONTH);// 得到天
int hour = calendar.get(Calendar.HOUR_OF_DAY);// 得到小时
int mi = calendar.get(Calendar.MINUTE);// 得到分钟
String date = "";
if (month < 10) {
date = year + "0" + month + "" + day + hour + "" + mi; //月分0-9,转换为0开头
}
if (mi == 0) {
date = year + "0" + month + "" + day + hour + "" + mi + "0"; //分钟为00
}
date += "00"; //加秒
try {
long millionSeconds = sdf.parse(date).getTime(); // 时间转毫秒
System.out.println(sdf.format(millionSeconds)); //毫秒转时间
for (long i = 0; i < length; i++) {
dateList.add(String.valueOf(millionSeconds - i
* (15 * 60 * 1000)));
}
} catch (Exception e) {
e.printStackTrace();
}
return dateList;
}
public static void main(String[] args) {
DateUtil.get15MinutesListByCurrentDate(new Long(20));
}
}
分享到:
相关推荐
java8 localtime 毫秒与时间互转 获取前一天六点钟时间
根据两个时间段,得到两者之间的毫秒数;分钟数;天数. 毫秒转换为分,毫秒转换为天,毫秒转换为秒
用 Java Swing 编写的一个对毫秒和日期进行相互转换的小工具,非常简单易用,而且支持Ctrl+C复制转换后的结果。对于经常进行毫秒和日期转换的人员来说是一个非常不错的选择!
目前Java没有直接设置系统时间精确到毫秒的方法,这里结合C可以时间。使用Java代码调用C库。
功能:将1970-01-01 00:00:00以来的毫秒数转换为对应的timestamp时间类型,精确保留毫秒级精度! 参数:I_MILLISECONDS NUMBER 待转换的毫秒数 示例:select MILLISECONDS2TIMESTAMP(1397457489296) from dual; ...
Android组件TimePicker组件的深入解析,自定义TimePicker组件,实现分钟间隔为5分钟选择
java 获取指定日期(带毫秒)的 13位时间戳 ,获取当前时间的时间戳 一句话就可以System.currentTimeMillis();
java 时间字符串中毫秒值时有时无,怎么解析(csdn)————程序
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class TestOutDate { public static void main(String[] args) { //method 1...
易语言获取系统时间到毫秒源码,获取系统时间到毫秒,系统时间到毫秒
java中将毫秒值转时间格式,和时间格式转换毫秒值,
名称:num_to_date 功能:将1970-01-01 00:00:00以来的毫秒数转换为对应的timestamp时间类型,不能... 示例:--毫秒数转时间(1551801221228)->(2019/3/5 15:52:56) select num_to_date(1551804255181) from dual;
用 Java Swing 编写的一个对毫秒和日期进行相互转换的小工具,非常简单易用。对于经常进行毫秒和日期转换的人员来说是一个非常不错的选择!
主要为大家详细介绍了Java日期时间字符串和毫秒相互转换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
毫秒数转为时间格式
易语言毫秒级时间源码,毫秒级时间,取系统时间_,timeGetTime,GetLocalTime
java毫秒数转时间,时间转毫秒数,日期比较,可以直接放到项目中引用
内容概要:日期时间转换工具类,包括基本的Date类型,String类型,TimeStamp类型,LocalDateTime类型,LocalDate类型之间的互相转换,还提供了许多与时间获取,时间计算有关的方法,如:获取指定日期几天后的日期;...
java根据时间生成唯一ID,普通的根据时间生成的ID放在循环内很容易重复。
主要介绍了C#实现毫秒转换成时分秒的方法,涉及C#时间的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下