java 毫秒转分钟和秒_java 毫秒 时间 相互转换 15分钟间隔集合

有个功能,要获取当前时间以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 get15MinutesListByCurrentDate(long length) {

List dateList = new ArrayList();

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));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值