使用SimpleDateFormat 格式化输出日期与
使用Calendar 格式化输出日期
在耗时上的对比如下
测试软件平台
win 7,CUP T4200,内存 2G,
eclipse 3.5,
android sdk1.5
测试硬件平台
T Mobile G1,

SimpleDateFormat的输出要比Calendar 慢2倍以上
SimpleDateFormat的格式有限制
比如想输出 13点45分 表示成13H45M 就很难表示了
定义成HHHMMM输出013045了
Calendar 的不便之处是 如果我想输出比较好的格式
比如 9点08分
那么0占位就需要自己写一下逻辑啦!

 
  1. view plaincopy to clipboardprint?
  2. /**
  3. * 通过milliseconds得到一个格式为"yyyy-mm-dd"的日期,比如2009-10-29
  4. * SimpleDateFormat方式模拟器耗时30毫秒,真机13毫秒
  5. * Calendar方式模拟器耗时12毫秒,真机2毫秒
  6. */
  7. public static String getDate(String milliseconds)
  8. {
  9. long mil = Long.parseLong(milliseconds);
  10. return getDate(mil);
  11. }
  12. public static String getDate(long milliseconds)
  13. {
  14. Date date = new Date(milliseconds);
  15. //      SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日");
  16. //      return formatter.format(date);
  17. Calendar c = Calendar.getInstance();
  18. c.setTime(date);
  19. return c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DAY_OF_MONTH);//月份是从0开始的,要+1
  20. }
  21. /**
  22. * 通过milliseconds得到一个格式为"HH:mm"的时间,比如15:25
  23. * SimpleDateFormat方式耗时40毫秒,真机16毫秒
  24. * Calendar方式模拟器耗时12毫秒,真机4毫秒
  25. */
  26. public static String getTime(String milliseconds)
  27. {
  28. long mil = Long.parseLong(milliseconds);
  29. return getTime(mil);
  30. }
  31. public static String getTime(long milliseconds)
  32. {
  33. Date date = new Date(milliseconds);
  34. //      SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");//H为占位符如多了就会添0补位
  35. //      return formatter.format(date);
  36. Calendar c = Calendar.getInstance();
  37. c.setTime(date);
  38. return c.get(c.HOUR_OF_DAY)+":"+c.get(c.MINUTE);
  39. }
  40. /**
  41. * 得到时间,如果是今天的时间,就显示TIME,如果是过去的时间就显示DATE
  42. * SimpleDateFormat方式耗时70毫秒,真机35毫秒
  43. * Calendar方式模拟器耗时20毫秒,真机7毫秒
  44. */
  45. public static String getDateORTime(String milliseconds)
  46. {
  47. String today = getDate(System.currentTimeMillis());
  48. if( today.equals( getDate(milliseconds) ) )//时间就是今天的
  49. return getTime(milliseconds);
  50. else
  51. return getDate(milliseconds);
  52. }

结论:绝大部分情况Calendar 都能应付,考虑速度问题,就用Calendar 啦!

声明:该数据仅供数量级上的参考,不做学术凭证。

本文转自 kome2000 51CTO博客,原文链接:http://blog.51cto.com/kome2000/578709

java实战技巧--关于格式化输出日期相关推荐

  1. Java格式化日期用斜杠_[java工具类01]__构建格式化输出日期和时间的工具类

    在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同 ...

  2. (JAVA)格式化输出日期

    1.使用子类SimpleDateFormet() 2.使用父类DateFormet package com.book.lite;import javafx.scene.input.DataFormat ...

  3. java规定日期格式输出_Java格式化输出日期百分比时间等

    Java格式化输出 Java的格式化输出等同于String.Format,与C有很大的相似,比如 System.out.printf("%8.2f", x); 在printf中,可 ...

  4. java怎么将时间格式化输出_Java获取时间日期并格式化输出

    Java获取当前系统时间.自定义时间和日期格式化输出部分应用总结 1.java获取当前时间,并格式化输出,如2018-12-01 11:20:11 // 获取当前时间,并格式化输出,如2018-12- ...

  5. 详述 Java 语言中的格式化输出

    1 前言 相信大家在学习 Java 语言的时候,见到的第一条输出语句,就是: System.out.println("Hello World"); 毫无疑问,该语句的作用就是将He ...

  6. java printwriter format_Java的格式化输出

    在JavaSe5中,推出了C语言中printf()风格的格式化输出.这不仅使得控制输出的代码更加简单,同时也给与Java开发者对于输出格式与排列更大的控制能力.今天,我们开始学习Java中的格式化输出 ...

  7. Java 1.2.2 格式化输出

    System.out.printf( ) 在早期的 Java 版本中,格式化数值曾引起过一些争议.后来Java SE 5.0 沿用了 C 语言库函数中的 printf方法. 每一个以 %字符开始的格式 ...

  8. jsp 格式化输出日期,数字

    首先我们来看看如何使用format属性进行格式化输出.我们在request中放入当前时间. request.setAttribute("time", new Date()); 在J ...

  9. python格式化输出日期_1、Python 日期时间格式化输出

    今天帮朋友写自动化脚本,又需要用格式化日期,又忘记怎么写了,还是写到自己博客里面,方便日后需要的时候看一眼吧.So,临时加一篇 Python 的文章. 1.Python的time模块 importti ...

  10. python字符串与文本处理技巧(4): 格式化输出、令牌解析、串上串

    1. 以指定列宽格式化字符串 很多情况下,我们有一些长字符串,想以指定的列宽将它们重新格式化. textwarp() import textwrap import oss = "Look i ...

最新文章

  1. C++11如何减少内存拷贝次数
  2. 算法--递归--走台阶问题(2种递归+递归改循环)
  3. XMPP扩展协议详解
  4. 安全认证传输服务器介绍
  5. @Resource注解使用详解
  6. 【ABAP系列】SAP ABAP 取两个内表的交集 比较两个内表的不同
  7. 基于依存句法规则的篇章级情感分析demo
  8. SQL SERVER 高效存储过程分页(Max/Min方法)
  9. chmod 777命令_Linux用户权限管理及用户权限管理命令操作
  10. JQuery DataTables插件中文文档
  11. Windows10上安装VS2017社区版操作步骤
  12. IE弹出窗口显示URL地址栏(适合IE10、IE11等)
  13. 亚控科技的KingSCADA多个漏洞
  14. Python3 装饰器进行log日志输出
  15. 给入门程序员找培训班的一些建议
  16. laravel中seed
  17. 如何防御DDoS攻击和CC攻击
  18. (javaweb-09) Filter
  19. 英语话题 topic 7:cooking
  20. 类加载机制:全盘负责和双亲委托

热门文章

  1. linux环境安装ffmepg,Linux centOS下安装FFmpeg
  2. 2021-09-03din 与dien
  3. 468.验证IP地址
  4. 使用大量数据提高算法性能的前提条件
  5. python中提交post表单_python接口自动化二(发送post请求)
  6. 超标量体系结构_计算机体系结构——以多发射和静态调度来开发ILP
  7. python实现人形识别_100行Python代码实现人体肤色检测
  8. 凸优化第七章统计估计 7.1参数分布估计
  9. Pytm:威胁建模框架
  10. 能力提升综合题单Part 8.9.3 费用流