• 【转】使用DateFormat把时间长度格式化为"时:分:秒"格式--不错


    原文网址:http://ssd910.blog.163.com/blog/static/238767972010112214114201/

    经常在系统中显示时间长度,基本上每次都是显示秒数,客户觉得按时分秒("HH:mm:ss")的格式显示比较明了,一般开发人员都是自己去计算小时是多少?分钟是多少...,其实可以用DateFormat来格式这个显示方式。示例代码如下:示例:

    计算某人总的登陆时间
    登陆时间是10:12:14
    结束时间是15:20:35
    示例代码:
      Calendar c1 = new GregorianCalendar(2007, 1, 16, 10, 12, 14);
      Calendar c2 = new GregorianCalendar(2007, 1, 16, 15, 20, 35);

      SimpleDateFormat formatter= new SimpleDateFormat("HH:mm:ss");

      // 设置格式化器的时区为格林威治时区,否则格式化的结果不对,中国的时间比格林威治时间早8小时,比如0点会被格式化为8:00
      formatter.setTimeZone(TimeZone.getTimeZone("GMT+0:00"));

      long l = c2.getTimeInMillis() - c1.getTimeInMillis();
      System.out.println("秒数:" + l);
      System.out.println("时分秒:" + formatter.format(l));

    输出结果:
    毫秒数:18501000
    时分秒:05:08:21

    注销设置TimeZone,输出结果:
    毫秒数:18501000
    时分秒:13:08:21

    上面的代码不能格式化年、月、日的长度,只能是时间,因为java的时间是从1970年1月1日开始的。

    若需要年月日,则只能自己去年月日字段拼装,如:
            StringBuffer result = new StringBuffer();
            // 添加年-月-日,可以自己判断补0,比如年份为4位获两位,月份是两位,天数是两位
            result.append(calendar.get(Calendar.YEAR) - 1970).append("-");
            result.append(calendar.get(Calendar.MONTH)).append("-");
            result.append(calendar.get(Calendar.DAY_OF_MONTH) - 1).append(" ");

    Android SimpleDateFormat转换时间 12,24时间格式

    原文网址:http://blog.csdn.net/zz_mm/article/details/9302965

    在使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss 如果希望格式化时间为24小时制的,则使用HH:mm:ss

    代码如下:

    1. Date d = new Date();  
    2.         SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//12小时制  
    3.         System.out.println(ss.format(d));  
    4.   
    5.         Date date = new Date();  
    6.         SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小时制  
    7.         String LgTime = sdformat.format(date);  
    8.         System.out.println(LgTime);  
    9.   
    10.   
    11. //结果为  
    12. 2008-05-28 01:32:54  
    13. 2008-05-28 13:32:54  

    Android Java计算时间差

    原文网址:http://www.ztyhome.com/android-java-shijiancha/

    Android开发或者Java学习中,经常要求两个时间差

    比如说:

    现在是 :2004-03-26 13:31:40

    过去是:2004-01-02 11:30:24

    我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

    这前后时间可能是机器生成的,也可能是人工输入的,那么我们可以通过下面代码来实现

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    2  
    3 try
    4 {
    5    Date d1 = df.parse("2004-03-26 13:31:40");
    6    Date d2 = df.parse("2004-01-02 11:30:24");
    7    long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别
    8  
    9    long days = diff / (1000 * 60 * 60 * 24);
    10    long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
    11    long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
    12  
    13    System.out.println(""+days+"天"+hours+"小时"+minutes+"分");
    14 }
    15 catch (Exception e)
    16 {
    17 }

    在Android开发中,你可能需要记录系统运行的时间长度,那么你可以在系统启动时记录下时间,然后在你想结束的时候再记录一次时间,两次时间记录值作差。具体可参考Java、Android超精确测量代码执行时间
    得到的差值也是微秒级别的,利用类似的方法,得到秒、分、时、天即可。

  • 相关阅读:
    JavaScript 倒计时脚本
    SQL Server 中的事务和锁
    Asp.net MVC 3 开发企业网站系统仿照博客园部分功能总体设计
    Windows RT 应用程序开发介绍培训的讲义
    Wcf异步调用简单示例
    asp.net搜索引擎(网络爬虫)设计及研发
    Twitter Storm RealLife App 排错记
    写个软件来防止服务器网站CPU百分百
    ALinq Dynamic
    .NET的跨平台调用一例(PreserveSig)
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4523905.html
Copyright © 2020-2023  润新知