将秒数转化为日期、时、分、秒

来源:互联网 发布:手机游戏录像软件 编辑:程序博客网 时间:2024/05/19 03:45

1.说明

笔者最近在开发过程中,需要进行时间上的处理的地方比较多,有时候没有处理好导致出现各种的错误。这里主要是讲一下,如何时将秒数的时间转化为"yyyy-MM-dd HH:mm:ss"的格式,例如:2016-12-04 16:40:23的格式。为了更好的转化时间,笔者用了Calendar和SimpleDateFormat的类。如果想了解更多这个两个类的用法,读者可以自己去看java的API。

2.秒数转时间

   相信读者对于如何将秒数转化为时间“HH:mm:ss”的格式是没有问题的,无非就是将秒数除以3600得到小时,然后将余数除以60得到分钟,得到的余数就是秒了。这里就不多说了。主要介绍如何获取到当前的年、月、日。这里笔者向大家介绍的是Calendar的类。获取当前的年通过Calendar.YEAR、得到月份Calendar.MONTH、得到日Calendar.DAY_OF_MONTH.

需要注意的是,我们获取到的月份是从0开始的,所以需要加1。

public class ChangeTime {public static void main(String[] args) {//时间总的秒数int seconds = 30654;//开始时间int startHours = seconds/3600;int startMinutes = (seconds%3600)/60;int startSeconds = (seconds%3600)%60;Calendar cal=Calendar.getInstance();//使用日历类SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//时间格式//时间:yyyy-MM-dd HH:mm:ssString startDateStr = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH)+1)           + "-" + cal.get(Calendar.DAY_OF_MONTH) + " " + startHours           + ":" + startMinutes + ":" + startSeconds;System.out.println("时间:" + startDateStr);}}

需要注意的是,我们输出的时间如果是一位数的,那么可能不会自己加“0”。如:08:06:02,可能就是8:6:2的形式。那么这样的话,就需要自己用正则表达式"^\\d{1}$"做判断,然后补“0”.读者可以自己实现。

3.将"EEE MMMddHH:mm:ss 'CST' yyyy"格式时间转化为“HH:mm:ss”

String stringDate = "Sun Dec 04 12:38:59 CST 2016";SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM ddHH:mm:ss 'CST' yyyy",Locale.US);try {Date date = sdf.parse(stringDate);sdf= new SimpleDateFormat("HH:mm:ss");    System.out.println(sdf.format(date));} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}




0 0