Java中数字和时间的格式化

在Java中可以使用 DecimalFormat,DateFormat,SimpleDateFormat来实现数字和日期的格式化

 

一、数字格式化

DecimalFormat NumberFormat (抽象类)的具体子类,用于格式化十进制数字,DecimalFormat 包含一个模式 和一组符号。符号含义如下:

0 一个数字

# 一个数字,不包括 0

. 小数的分隔符的占位符

, 分组分隔符的占位符

; 分隔格式。

- 缺省负数前缀。

% 乘以 100 和作为百分比显示

X 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

 

二、日期格式化

SimpleDateFormatDateFormat的子类,都可以实现日期的格式化。

 

   /*数字格式化*/
  DecimalFormat df = new DecimalFormat();
  double data = 12.3456789;
  String style = "";
  System.out.println("格式化之前的数字: " + data);

 

  /*输出格式: 12.3*/
  style = "0.0";
  df.applyPattern(style);
  System.out.println(df.format(data));

 

  /* 在格式后添加诸如单位等字符 */
  /*输出格式: 00012.346 kg*/
  style = "00000.000 kg";
  df.applyPattern(style);
  System.out.println(df.format(data));

 

  /* 模式中的"#"表示如果该位存在字符,则显示字符,如果不存在,则不显示。 */
  /*输出格式: 012.346 kg*/
  style = "##000.000 kg";
  df.applyPattern(style);
  System.out.println(df.format(data));

 

  /*模式中的"-"表示输出为负数,要放在最前面*/
  /*输出格式: -012.346*/
  style = "-000.000";
  df.applyPattern(style);
  System.out.println(df.format(data));

 

  /*模式中的","在数字中添加逗号,方便读数字*/
  /*输出格式: -0,012.35*/
  style = "-0,000.0#";
  df.applyPattern(style);
  System.out.println(df.format(data));

 

  /*模式中的"E"表示输出为指数,"E"之前的字符串是底数的格式,*/
  /*"E"之后的是字符串是指数的格式*/
  /*输出格式: 1.23E001*/
  style = "0.00E000";
  df.applyPattern(style);
  System.out.println(df.format(data));

 

  /*模式中的"%"表示乘以100并显示为百分数,要放在最后。*/
  /*输出格式: 1234.57%*/
  style = "0.00%";
  df.applyPattern(style);
  System.out.println(df.format(data));

 

  /*模式中的"\u2030"表示乘以1000并显示为千分数,要放在最后。*/
  /*输出格式: 12345.68‰*/
  style = "0.00\u2030";
  DecimalFormat df1 = new DecimalFormat(style);
  df.applyPattern(style);
  System.out.println(df1.format(data));

 

 

  /*日期格式化*/
  Date d = new Date();
  String s;

 

  /* Date类的格式: Sat Apr 16 13:17:29 CST 2006 */
  System.out.println(d);

 

  /* getDateInstance() */
  /* 输出格式: 2006-4-16 */
  s = DateFormat.getDateInstance().format(d);
  System.out.println(s);

 

  /* 输出格式: 2006-4-16 */
  s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);
  System.out.println(s);

 

  /* 输出格式: 2006年4月16日 星期六 */
  s = DateFormat.getDateInstance(DateFormat.FULL).format(d);
  System.out.println(s);

 

  /* 输出格式: 2006-4-16 */
  s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);
  System.out.println(s);

 

  /* 输出格式: 06-4-16 */
  s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);
  System.out.println(s);

 

  /* 输出格式: 2006-01-01 00:00:00 */
  java.text.DateFormat format1 = new java.text.SimpleDateFormat(
    "yyyy-MM-dd hh:mm:ss");
  s = format1.format(new Date());
  System.out.println(s);

 

  /* 输出格式: 2006-01-01 00:00:00 */
  System.out.println((new java.text.SimpleDateFormat(
    "yyyy-MM-dd hh:mm:ss")).format(new Date()));

 

  /* 输出格式: 20060101000000***/
  java.text.DateFormat format2 = new java.text.SimpleDateFormat(
    "yyyyMMddhhmmss");
  s = format2.format(new Date());
  System.out.println(s);

 

  /* 输出格式: 2006-01***/
  java.text.DateFormat format3 = new java.text.SimpleDateFormat("yyyy-MM");
  s = format3.format(new Date());
  System.out.println(s);

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值