java 常用类库:格式化NumberFormat;SimpleDataFormat类(转换Data()对象);DateTimeFormatter 转换LocalDateTime时间对象
NumberFormat类
该类是一个做数字格式化的类,它是一个抽象类,无法实例化。它提供了parse()和format()方法,其中format用于将数值,格式转化成字符串,parse()用于把字符串转化成数值,日期。
NumberFormat提供了四个方法,来获取对应的子类:
(1),NumberFormat.getNumberInstance(Local local); 获取通用的数据格式
(2),NumberFormat.getPercentInstance(Local local); 获取百分数格式
(3),NumberFormat.getCurrencyInstance(Local local); 获取货币格式
(4),NumberFormat.getIntegerInstance(Local local); 获取整数格式
注:Local local 是地区/国家,每种国家的格式不一样,通过如上四种之一返回子类。调用子类的format方法 获取传入值返回格式化写法
package com.zmd.common_class_libraries; import java.text.NumberFormat; import java.util.Locale; /** * @ClassName NumberFormatExample * @projectName: object1 * @author: Zhangmingda * @description: 数字格式化 * date: 2021/4/8. */ public class NumberFormatExample { public static void main(String[] args) { double testNum = 18000.3323; Locale[] locales = {Locale.CHINA, Locale.JAPAN, Locale.US}; NumberFormat[] numberFormats = new NumberFormat[12]; for(int i = 0; i<locales.length; i++){ numberFormats[i * 4] = NumberFormat.getInstance(locales[i]); numberFormats[i * 4 + 1] = NumberFormat.getPercentInstance(locales[i]); numberFormats[i * 4 + 2] = NumberFormat.getCurrencyInstance(locales[i]); numberFormats[i * 4 + 3] = NumberFormat.getIntegerInstance(locales[i]); } for(int i=0;i<locales.length; i++){ System.out.println("数字格式=========" + locales[i]); System.out.println("通用数字格式:" + numberFormats[i * 4].format(testNum)); System.out.println("百分比格式:" + numberFormats[i * 4 + 1].format(testNum)); System.out.println("货币格式:" + numberFormats[i * 4 + 2].format(testNum)); System.out.println("数字格式:" + numberFormats[i * 4 + 3].format(testNum)); } } }
DateFormat类:固定的时间日期格式(只能转化Date()对象)
与NumberFormat相似的是,DateFormat也是一个抽象类,它提供了如下几个类方法获取DateFormat对象。
(1),getDateInstance:返回一个日期格式对象,格式化之后的字符串只有日期
(2),getTimeInstance:返回一个时间日期格式对象,格式化之后的字符串只有时间
(3),getDateTimeInstance:返回一个日期时间格式对象,格式化之后的字符串有时间也有日期。
创建对象实例格式:
getDateInstance(int style, Locale aLocale)
getTimeInstance(int style, Locale aLocale)
getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
对象.format(Date Object)转换已有Date()对象到对应格式
package com.zmd.common_class_libraries; import java.text.DateFormat; import java.util.Date; import java.util.Locale; /** * @ClassName DateFormatExample * @projectName: object1 * @author: Zhangmingda * @description: XXX * date: 2021/4/8. */ public class DateFormatExample { public static void main(String[] args) { Date date = new Date(); System.out.println("===============日期格式化====================="); System.out.println(DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA).format(date)); System.out.println(DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.CHINA).format(date)); System.out.println(DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA).format(date)); System.out.println(DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA).format(date)); System.out.println("===============时间格式化====================="); System.out.println(DateFormat.getTimeInstance(DateFormat.SHORT, Locale.CHINA).format(date)); System.out.println(DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.CHINA).format(date)); System.out.println(DateFormat.getTimeInstance(DateFormat.LONG, Locale.CHINA).format(date)); System.out.println(DateFormat.getTimeInstance(DateFormat.FULL, Locale.CHINA).format(date)); System.out.println("===============日期时间格式化====================="); System.out.println(DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.CHINA).format(date)); System.out.println(DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, Locale.CHINA).format(date)); System.out.println(DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, Locale.CHINA).format(date)); System.out.println(DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT, Locale.CHINA).format(date)); } }
SimpleDataFormat类:自定义时间格式,只能转换Date()对象
语法:
- 需要new创建实例 :DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- 再用实例的format(Date()对象)解析
- 反向解析使用解析实例的parse(“DateTimeString”)方法
代码示例:
package com.zmd.common_class_libraries; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Calendar; import java.util.Date; /** * @ClassName SimpleDateFormatExample * @projectName: object1 * @author: Zhangmingda * @description: 自定义Data()对象的日期时间输出格式 * date: 2021/4/8. */ public class SimpleDateFormatExample { public static void main(String[] args) throws ParseException { //获取时间Date()对象 Date date = new Date(); LocalDateTime localDateTime = LocalDateTime.now(); Calendar calendar = Calendar.getInstance(); System.out.println(); //正向自定义格式化输出时间格式,只能转换Date()类对象 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(dateFormat.format(calendar.getTime())); //反向解析字符串返回时间实例 String datetime = "2021-04-08 08:44:58"; Date date1 = dateFormat.parse(datetime); //需要抛出异常 throws ParseException System.out.println(date1); } }
DateTimeFormatter 转换LocalDateTime时间对象到指定String格式
语法:
- 调用DateTimeFormatter的静态方法ofPattern创建解析实例:DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- 再使用解析实例的format()方法对LocalDateTime类对象解析
- 反向解析使用DateTimeFormatter的静态方法 parse(CharSequence text, DateTimeFormatter formatter) 传入时间字符串和解析用实例。
package com.zmd.common_class_libraries; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * @ClassName DateTimeFormatterExample * @projectName: object1 * @author: Zhangmingda * @description: 自定义Data()对象的日期时间输出格式 * date: 2021/4/8. */ public class DateTimeFormatterExample { public static void main(String[] args) { //LocalDateTime对象的时间,转换为指定格式String LocalDateTime localDateTimeNow = LocalDateTime.now(); System.out.println(localDateTimeNow); //2021-04-08T11:53:11.585965900 //创建解析对象,使用format方法解析 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println(dateTimeFormatter.format(localDateTimeNow)); //2021-04-08 11:53:11 //时间String 转换为LocalDateTime对象,使用parse实例化 String datetimeStr = "2021-04-08 11:31:02"; LocalDateTime localDateTime = LocalDateTime.parse(datetimeStr, dateTimeFormatter); System.out.println(localDateTime); //2021-04-08T11:31:02 } }
posted on 2021-04-08 08:49 zhangmingda 阅读(583) 评论(0) 编辑 收藏 举报