zoukankan      html  css  js  c++  java
  • 日期操作

    日期操作

    java.util包中

    Date

    public class Dateextends Object implements Serializable, Cloneable, Comparable<Date>

    此类是日期操作的一个重要的类。

    Calendar  抽象类 

    public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>

    通过此类可以将时间精确到毫秒,此类是一个抽象类,使用时必须依靠其子类。

    GregorianCalendar

    public class GregorianCalendar extends Calendar 此类是Calendar的唯一子类。

    日期的格式化

    java.text包中

    Format

    public abstract class Format extends Objectimplements Serializable, Cloneable

    Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类

    实现它的子类有:DateFormat, MessageFormat, NumberFormat

    DateFormat和SimpleDateFormat

    public abstract class DateFormat extends Format

    此类是个抽象类,开发中一般不直接使用,而是用SimpleDateFormat。

    public class SimpleDateFormat extends DateFormat

    常用的日期字符串转换:

     1 package com.fwj.conver;
     2 
     3 import java.text.DateFormat;
     4 import java.text.ParseException;
     5 import java.text.SimpleDateFormat;
     6 import java.util.Date;
     7 
     8 public class Conver {
     9     public Conver() {
    10         
    11     }
    12     
    13     public static String ConverToString(Date date) {
    14         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    15         String strDate = df.format(date);
    16         return strDate;
    17     }
    18     
    19     public static Date ConverToDate(String strDate) throws ParseException {
    20         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    21         Date date = df.parse(strDate);
    22         return date;
    23     }
    24 }

    SimpleDateFormat例子:

     1 package com.fwj.dateformat;
     2 
     3 import java.text.ParseException;
     4 import java.text.SimpleDateFormat;
     5 import java.util.Date;
     6 
     7 public class SimpleDateFormatDemo {
     8 
     9     public static void main(String[] args) throws ParseException {
    10 
    11         String str = "2012-6-12 09:45:52.632";
    12         SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");//
    13         SimpleDateFormat sf2 = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒SSS毫秒");
    14         Date date = sf1.parse(str);//按照sf1给定的格式取得日期
    15         String dateStr = sf2.format(date);//按照sf2给定的格式解析Date
    16         System.out.println(dateStr);
    17     }
    18 }

    运行结果:

    2012年06月12日09时45分52秒632毫秒

    使用SimpleDateFormat中的applyPattern()方法设定模式

     1 package com.fwj.dateformat;
     2 
     3 import java.text.ParseException;
     4 import java.text.SimpleDateFormat;
     5 import java.util.Date;
     6 
     7 public class SimpleDateFormatDemo {
     8 
     9     public static void main(String[] args) throws ParseException {
    10 
    11         String str = "2012-6-12 09:45:52.632";
    12         SimpleDateFormat sf = new SimpleDateFormat();
    13         sf.applyPattern("yyyy-MM-dd hh:mm:ss.SSS");
    14         Date date = sf.parse(str);//按照sf1给定的格式取得日期
    15         sf.applyPattern("yyyy年MM月dd日hh时mm分ss秒SSS毫秒");
    16         String dateStr = sf.format(date);//按照sf2给定的格式解析Date
    17         System.out.println(dateStr);
    18     }
    19 }

    NumberFormat和DecimalFormat

    DecimalFormat是NumberFormat的子类

     1 package com.fwj.dateformat;
     2 
     3 import java.text.NumberFormat;
     4 
     5 public class NumberFormatDemo {
     6 
     7     public static void main(String[] args) {
     8 
     9         int num = 12032040;
    10         NumberFormat nf = NumberFormat.getInstance();
    11         System.out.println(nf.format(num));
    12     }
    13 
    14 }

    运行结果:

    1 12,032,040

    中文环境下每三位隔开。

    下面看DecimalFormat例子:

    DecimalFormat与SimpleDateFormate类似,在此类中也存在着一套模板设置。

     1 package com.fwj.dateformat;
     2 
     3 import java.text.DecimalFormat;
     4 
     5 public class FormatDemo {
     6 
     7     public void format(String pattern,double value){
     8         DecimalFormat df = new DecimalFormat(pattern);//指定操作模板
     9         String str = df.format(value);
    10         System.out.println("使用"+pattern+"格式化数字"+value+"为:"+str);
    11     }
    12 }
     1 package com.fwj.dateformat;
     2 
     3 public class FormatDemoTest {
     4 
     5     public static void main(String[] args) {
     6 
     7         FormatDemo demo = new FormatDemo();
     8         demo.format("###,###.###", 33652.36952);
     9         demo.format("000,000.000", 33652.36952);
    10         demo.format("###,###.###¥", 33652.36952);
    11         demo.format("000,000.000¥", 33652.36952);
    12         demo.format("##.###%", 0.06952);
    13         demo.format("00.###%", 0.06952);
    14         demo.format("##.###u2030", 0.06952);
    15     }
    16 }

    运行结果:

    使用###,###.###格式化数字33652.36952为:33,652.37
    使用000,000.000格式化数字33652.36952为:033,652.370
    使用###,###.###¥格式化数字33652.36952为:33,652.37¥
    使用000,000.000¥格式化数字33652.36952为:033,652.370¥
    使用##.###%格式化数字0.06952为:6.952%
    使用00.###%格式化数字0.06952为:06.952%
    使用##.###‰格式化数字0.06952为:69.52‰

    大数操作

    大数操作是指数据非常大,大到已经超过了整个数据类型的保存范围,应此,此时就需要使用对象的形式进行操作,如果碰到这种为题,实际上都是使用字符串进行处理的。

    为了解决这一问题,Java中提供了两大数字对象:BigInteger,BigDecimal

    BigInteger

    BigInteger表示大的整型数据

    public class BigInteger extends Numberimplements Comparable<BigInteger>

     1 package com.fwj.dateformat;
     2 
     3 import java.math.BigInteger;
     4 
     5 public class BigIntegerDemo {
     6 
     7     public static void main(String[] args) {
     8 
     9         String mun = "88888888888888888888888888";
    10         BigInteger bt1 = new BigInteger(mun);
    11         BigInteger bt2 = new BigInteger(mun);
    12         System.out.println("加法操作:"+bt1.add(bt2));
    13     }
    14 }

    运行结果:

    加法操作:177777777777777777777777776

    BigDecimal

    BigDecimal类的主要功能是进行小数的大数计算,最重要的是可以精确到指定的四舍五入。

     1 package com.fwj.dateformat;
     2 
     3 import java.math.BigDecimal;
     4 
     5 public class BigIntegerDemo {
     6 
     7     public static void main(String[] args) {
     8 
     9         String mun = "88888888888888888888888888";
    10         BigDecimal bt1 = new BigDecimal(mun);
    11         BigDecimal bt2 = new BigDecimal(mun);
    12         System.out.println("加法操作:"+bt1.add(bt2).doubleValue());
    13     }
    14 }

    运行结果:

    加法操作:1.7777777777777777E26
  • 相关阅读:
    常见的行元素与块元素
    [转]SVN服务器部署并实现双机同步及禁止普通用户删除文件
    [转]Axure共享工程Shared Project(二):编辑修改和提交
    如何添加网络打印机
    [转]JSON 转换异常 死循环 There is a cycle in the hierarchy
    比较常用的Properties配置文件的使用方法示例
    解决Tomcat项目重复加载导致pemgen space内存溢出
    怎样批量删除.svn文件
    [转]前端工程师必须掌握的知识点
    Freemarker 使用
  • 原文地址:https://www.cnblogs.com/mingluosunshan/p/3230418.html
Copyright © 2011-2022 走看看