首页 > 编程语言 >使用java.text包格式化数字和日期

使用java.text包格式化数字和日期

时间:2023-05-18 22:07:41浏览次数:42  
标签:java output text System patternPrint pattern println 格式化 out


TestFormat.java

import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestFormat {
public static void main(String[] args) {

   defaultNumberFormat();
   System.out.println();

   customNumberFormat();
   System.out.println();

   defaultDateFormat();
   System.out.println();

   customDateFormat();
   System.out.println();
}

public static void defaultNumberFormat() {

   int i = 123456;

   double x = 882323.23523;

   double p = 0.528;

   double c = 52.83;

   NumberFormat nf = NumberFormat.getInstance();
   System.out.println("NumberFormat.getInstance()");
   System.out.println("Integer " + i + " is displayed as " + nf.format(i));
   System.out.println("Double " + x + " is displayed as " + nf.format(x));

   NumberFormat nfInt = NumberFormat.getIntegerInstance();
   System.out.println("NumberFormat.getIntegerInstance()");
   System.out.println("Integer " + i + " is displayed as "
     + nfInt.format(i));

   NumberFormat nfNumber = NumberFormat.getNumberInstance();
   System.out.println("NumberFormat.getNumberInstance()");
   System.out.println("Double " + x + " is displayed as "
     + nfNumber.format(x));

   NumberFormat nfPercent = NumberFormat.getPercentInstance();
   System.out.println("NumberFormat.getPercentInstance()");
   System.out.println("Percent " + p + " is displayed as "
     + nfPercent.format(p));

   NumberFormat nfCurrency = NumberFormat.getCurrencyInstance();
   System.out.println("NumberFormat.getCurrencyInstance()");
   System.out.println("Currency " + c + " is displayed as "
     + nfCurrency.format(c));

   // 这里没有涉及相应的parse方法

}

public static void customNumberFormat() {

   double x = 1000.0 / 3;

   System.out.println("default output is " + x);//333.3333333333333
   patternPrint("###,###.##", x);//333.33
   patternPrint("####.##", x);//333.33
   patternPrint("####.00", x);//333.33
   patternPrint("####.0#", x);//333.33
   patternPrint("00000.##", x);//00333.33
   patternPrint("$###,###.##", x);//$333.33
   patternPrint("0.###E0", x);//3.333E2
   patternPrint("00.##%", x);//33333.33%
   double y = 23.0012;
   System.out.println("default output is " + y);//23.0012
   patternPrint("###,###.##", y);//23
   patternPrint("####.##", y);//23
   patternPrint("####.00", y);//23.00
   patternPrint("####.0#", y);//23.0
   patternPrint("00000.##", y);//00023
   patternPrint("$###,###.##", y);//$23
   patternPrint("0.###E0", y);//2.3E1
   patternPrint("00.##%", y);//2300.12%

}

public static void patternPrint(String pattern, double x) {

   DecimalFormat df = new DecimalFormat(pattern);
   System.out.println("output for pattern " + pattern + " is "
     + df.format(x));

}

public static void defaultDateFormat() {

   Date date = new Date();
   System.out.println("simple date " + date.toLocaleString());//2007-8-31 14:40:24

   DateFormat df = DateFormat.getDateTimeInstance();
   System.out.println(df.format(date));//2007-8-31 14:40:24

   DateFormat dfLong = DateFormat.getDateTimeInstance(DateFormat.LONG,
     DateFormat.LONG);
   System.out.println(dfLong.format(date));//2007年8月31日 下午02时40分24秒

   DateFormat dfMedium = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
   DateFormat.MEDIUM);
   System.out.println(dfMedium.format(date));//2007-8-31 14:40:24
   DateFormat dfShort = DateFormat.getDateTimeInstance(DateFormat.SHORT,
     DateFormat.SHORT);
   System.out.println(dfShort.format(date));//07-8-31 下午2:40

}

public static void customDateFormat() {

   Date date = new Date();
   patternPrint("yyyy.MM.dd HH:mm:ss z", date); // 两个MM, dd会导致补零//2007.08.31 14:40:24 CST
   patternPrint("yy年M月d日 HH时mm分", date); // 两个yy就显示为两位年份//07年8月31日 14时40分
   patternPrint("EEE, MMM d, ''yy", date);//星期五, 八月 31, '07
   patternPrint("h:mm a", date);//2:40 下午
   patternPrint("hh 'o''clock' a, zzzz", date);//02 o'clock 下午, 中国标准时间
   patternPrint("yyyyy.MMMMM.dd GGG hh:mm aaa", date);//02007.八月.31 公元 02:40 下午
   patternPrint("EEE, d MMM yyyy HH:mm:ss Z", date);//星期五, 31 八月 2007 14:40:24 +0800
   patternPrint("yyMMddHHmmssZ", date);//070831144024+0800

}

public static void patternPrint(String pattern, Date date) {

   SimpleDateFormat df = new SimpleDateFormat(pattern);
   System.out.println(df.format(date));
}

}


输出:

NumberFormat.getInstance()
Integer 123456 is displayed as 123,456
Double 882323.23523 is displayed as 882,323.235
NumberFormat.getIntegerInstance()
Integer 123456 is displayed as 123,456
NumberFormat.getNumberInstance()
Double 882323.23523 is displayed as 882,323.235
NumberFormat.getPercentInstance()
Percent 0.528 is displayed as 53%
NumberFormat.getCurrencyInstance()
Currency 0.528 is displayed as ¥52.83

default output is 333.3333333333333
output for pattern ###,###.## is 333.33
output for pattern ####.## is 333.33
output for pattern ####.00 is 333.33
output for pattern ####.0# is 333.33
output for pattern 00000.## is 00333.33
output for pattern $###,###.## is $333.33
output for pattern 0.###E0 is 3.333E2
output for pattern 00.##% is 33333.33%
default output is 23.0012
output for pattern ###,###.## is 23
output for pattern ####.## is 23
output for pattern ####.00 is 23.00
output for pattern ####.0# is 23.0
output for pattern 00000.## is 00023
output for pattern $###,###.## is $23
output for pattern 0.###E0 is 2.3E1
output for pattern 00.##% is 2300.12%

simple date 2007-8-31 14:40:24
2007-8-31 14:40:24
2007年8月31日 下午02时40分24秒
2007-8-31 14:40:24
07-8-31 下午2:40

2007.08.31 14:40:24 CST
07年8月31日 14时40分
星期五, 八月 31, '07
2:40 下午
02 o'clock 下午, 中国标准时间
02007.八月.31 公元 02:40 下午
星期五, 31 八月 2007 14:40:24 +0800
070831144024+0800

标签:java,output,text,System,patternPrint,pattern,println,格式化,out
From: https://blog.51cto.com/u_16119425/6306931

相关文章

  • Java程序设计复习提纲(上:入门语法)
    目录上:基本语法与编译运行数据类型和关键字常用语法数组与字符串异常处理中:面向对象和类下:图形界面基本语法与编译运行java没有指针没有全局变量Java源代码文件的后缀名是".java"。编译后会生成一个或多个字节码文件,后缀名为".class"。Java的编......
  • Javaweb期末作品
    用户修改界面update.jsp<html><head><title>update</title><linkrel="stylesheet"href="css/updateUser.css"></head><bodystyle="margin:0100px"><divcla......
  • Java面向对象之构造方法
    方法重载Overload  1.概念:一个类中的一组方法 相同的方法名字 不同的参数列表 构成了方法重载参数的不同体现在 参数的个数 参数的类型 参数的顺序三个方面  2.作用:为了便于记忆和调用使得方法调用时更加的灵活  3.自己也可以设计方法重载   ......
  • java常用类
    java常用类Object类基类,超类,所有类的直接或间接父类object类定义的方法是所有对象都具有的方法object类型可以存储任何对象作为参数,可以接受任何对象作为返回值,可以返回任何对象getClass()返回引用中存储的实际对象类型publicclassStudent{publicstaticvoidm......
  • Java复习
    整理笔记,层次分明智能医学的定义医、理、工高度交叉的学科人类医学发展的三个阶段经验医学、循证医学、智能医学(?)三种思维:医学-科技-融合第一时代是经验医学以个人经验为主,医生根据自己的实践经验、高年资医师的指导、教科书和医学期刊上零散的研究报告为依据来处理患......
  • Java设计模式-抽象工厂模式
    简介设计模式是软件设计中的一种常见方法,通过定义一系列通用的解决方案,来解决常见的软件设计问题。其中,抽象工厂模式是一种非常常见的设计模式,它可以帮助我们创建一组相关的对象,而不需要指定具体的实现方式。抽象工厂模式是一种创建型设计模式,它提供了一种方式来创建一组相关的对......
  • Java设计模式-外观模式
    简介在软件开发过程中,经常会遇到复杂的系统和庞大的类库。这些系统往往包含了大量的类和子系统,给开发人员带来了挑战。为了简化接口设计和提高系统的可用性,设计模式提供了一种名为外观模式的解决方案。外观模式是一种结构型设计模式,旨在为复杂系统提供一个简化的接口。该模式通......
  • Javascript 常见的循环方式总结
    本文地址:https://www.cnblogs.com/zichliang/p/17412968.html在Javascript中有很多种循环方式。有多种循环方式可以用来遍历数组、对象、以及执行一些重复性任务但是有很多方式甚至从未用过,所以简单来总结一下JS中的循环for循环for循环是在您希望创建循环时经常使用的工具。......
  • java8新特性,stream流简单使用
    //新建测试类@Data@NoArgsConstructor@AllArgsConstructor@EqualsAndHashCodepublicclassAuthor{//idprivateLongid;//姓名privateStringname;//年龄privateIntegerage;//简介privateStringintro;//作品privateList<Book>......
  • JavaScript全解析——Ajax是什么(上)
    AJAX是AsynchronousJavaScriptAndXML的缩写。它不是一种编程语言。它是一种基于HTML、CSS、JavaScript和XML,让开发更好、更快和更有互动的Web应用的技术。什么是ajax认识前后端交互前后端交互就是前端与后端的一种通讯方式,主要使用的技术栈就是ajax(asyncjavascript......