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()对象

语法:
  1. 需要new创建实例 :DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  2. 再用实例的format(Date()对象)解析
  3. 反向解析使用解析实例的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格式

语法:

  1.  调用DateTimeFormatter的静态方法ofPattern创建解析实例:DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  2. 再使用解析实例的format()方法对LocalDateTime类对象解析
  3. 反向解析使用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编辑  收藏  举报

导航