博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日期操作
阅读量:6829 次
发布时间:2019-06-26

本文共 5473 字,大约阅读时间需要 18 分钟。

日期操作

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给定的格式解析Date16         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给定的格式解析Date17         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

 

转载于:https://www.cnblogs.com/mingluosunshan/p/3230418.html

你可能感兴趣的文章
PySide教程:“.NET研究”第一个PySide应用
查看>>
winrar自解压释放路径详解
查看>>
图像开运算+闭运算+腐蚀+膨胀
查看>>
poj-1324 Holedox Moving **** [转]
查看>>
深入foreach工作方式
查看>>
UIView 进行各种动画展示及其用法解释
查看>>
公布2012年5月赛CSDN算法达人赛试题及参考答案
查看>>
Mysql ON子句和USING子句
查看>>
linux杂谈
查看>>
类型、值和变量
查看>>
UIImage+Scale
查看>>
Linux sed 替换第一次出现的字符串
查看>>
windows 下VLC播放器应用之二------LIBVLC API解析
查看>>
web页面常用功能js实现
查看>>
Android开发中SharedPreferences的应用
查看>>
一步步构建大型网站架构
查看>>
[转载]jquery 动态滚动
查看>>
POJ 3415 Common Substrings
查看>>
The run destination iPhone 5.0 Simulator is not valid for running the scheme 'MyApp'
查看>>
【C#】在父窗体菜单合并子窗体菜单
查看>>