Date和String.format常见用法

原创 2015年11月17日 19:26:33

目前的java版本中,Date类主要通过SimpleDateFormat和Calendar类进行处理,Date类内部的很多方法都被弃用。SimpleDateFormat可以按照一定的格式对Date和String进行转换,而Calendar类则是根据国际化标准来构造Date实例。

举例两个常见用法:
计算两个日期的天数,输入为两个时间的字符串,如“20151117”

/**
* 计算两个日期间的天数
*/
public static long getDayNum(String start, String end) {
    // 格式标准:yyyyMMdd
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    //通过Calendar.getInstance()方法来构造Calendar实例
    Calendar calendar = Calendar.getInstance(Locale.CHINA);
    try {
        Date date1 = sdf.parse(start);
        calendar.setTime(date1);
        int day1 = calendar.get(Calendar.DAY_OF_YEAR);
        Date date2 = sdf.parse(end);
        calendar.setTime(date2);
        int day2 = calendar.get(Calendar.DAY_OF_YEAR);
        if(day2 < day1)
            retrun day1 - day2 + 1;
        else
            return day2 - day1 + 1;
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return 0;
}

计算两个时间段间的分秒数,这回的输入为两个时间的时间戳。

/**
* 计算两个时间的分秒数
*/
public static String getTimeLength(String start, String end) {
   Calendar calendar = Calendar.getInstance(Locale.CHINA);
   try {
    //传入时间戳,得到对应的时间
       calendar.setTimeInMillis(Long.parseLong(start));
       int min1 = calendar.get(Calendar.MINUTE);
       int sec1 = calendar.get(Calendar.SECOND);
       calendar.setTimeInMillis(Long.parseLong(end));
       int min2 = calendar.get(Calendar.MINUTE);
       int sec2 = calendar.get(Calendar.SECOND);
       int secRes, minRes;
       if (sec2 - sec1 < 0) {
           sec2 += 60;
           min2--;
       }
       secRes = sec2 - sec1;
       if ((minRes = min2 - min1) < 0) {
           return "00:00";
       }
       return String.format("%02d", minRes) + ":" + String.format("%02d", secRes);
   } catch (Exception e) {
       Log.e("lzq", "getTimeLength found error!", e);
   }
   return "00:00";
}

上述代码用到了String.format()方法。String.format()能够把int、double转化成我们想要的字符串。
举两个例子:

显示两位数字,不足补0,一般用于分秒的显示

int a = 5;
//d:整数
//2:两位
//0:不足补0
String.format("%02d", a);

结果为05

保留一位小数:

float b = 8.932f;
//.1f:一位小数
String.format("%.1f",b);

结果为8.9

版权声明:本文为博主原创文章,未经博主允许不得转载。

String.format()方法使用说明

JDK1.5开始String类中提供了一个非常有用的方法String.format(String format, Object ... args) 查看源码得知其实是调用了java.util.For...
  • thc1987
  • thc1987
  • 2013年12月24日 15:48
  • 68797

String.format()【示例详解】

String.format()【示例详解】 整理者:Vashon 前言: String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简...
  • yangwenxue_admin
  • yangwenxue_admin
  • 2015年06月24日 15:44
  • 1803

JAVA的Date类与Calendar类(常用方法)

1.用java.util.Calender来实现       Calendar calendar=Calendar.getInstance();           calendar.setTim...
  • xiaopihai86
  • xiaopihai86
  • 2016年03月08日 16:04
  • 3901

String.format()用法解析

JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语...
  • qiujieda
  • qiujieda
  • 2012年08月08日 15:29
  • 493

String高级用法---format使用详解

字符串的数字格式 stringstr1 =string.Format("{0:N1}",56789);               //result: 56,789.0 stringstr2 =s...
  • u010405231
  • u010405231
  • 2015年05月25日 17:22
  • 1198

C#中string.format用法详解

本文实例总结了C#中string.format用法。分享给大家供大家参考。具体分析如下: String.Format 方法的几种定义: String.Format (String, Obj...
  • qq_17758883
  • qq_17758883
  • 2017年10月25日 11:49
  • 69

C#中string.format用法详解

String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。 Str...
  • u010655348
  • u010655348
  • 2017年01月18日 19:29
  • 905

String.format的用法(http://blog.csdn.net/lu8000/article/details/11717331)

在JDK1.5中,String类增加了一个非常有用的静态函数format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定...
  • yehui18sui
  • yehui18sui
  • 2013年09月16日 10:14
  • 959

linux下测试RTC驱动相关的命令date和hwclock常见用法简介

原文地址 之前对Linux下面时间相关的内容,一无所知,第一次见到hwclock,不知为何物,也没找到解释清楚的帖子。故此整理一下,简单介绍Linux下验证rtc驱动是否工作正常,相...
  • tianxiawuzhei
  • tianxiawuzhei
  • 2012年05月18日 22:09
  • 1285

linux下测试RTC驱动相关的命令date和hwclock常见用法简介

之前对Linux下面时间相关的内容,一无所知,第一次见到hwclock,不知为何物,也没找到解释清楚的帖子。故此整理一下,简单介绍Linux下验证rtc驱动是否工作正常,相关的的命令:date和hwc...
  • zjy900507
  • zjy900507
  • 2017年12月19日 00:16
  • 71
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Date和String.format常见用法
举报原因:
原因补充:

(最多只允许输入30个字)