java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

java实战项目常用类,Date、Calendar、BigDecimal、Math、UUIDJava开发中经常用到的类和方法,以下主要就日期是时间处理、金融数字处理、数学计算、随机数、MD5加密等。java.util.Date类java

大家好,欢迎来到IT知识分享网。

Java开发中经常用到的类和方法,以下主要就日期是时间处理、金融数字处理、数学计算、随机数、MD5加密等。

java.util.Date类

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。日期时间的本质是一个long,它表示从1970-1-1 0:0:0.000以来的毫秒数。

System.currentTimeMillis() 可以得到当前系统时间所表示的毫秒数.

java.util.Date类

getYear(): 自1900年以来的年数

getMonth(): 0-11

getDate(): 1-31

getHours(): 0-23

getMinutes(): 0-59

getSeconds(): 0-59

getDay(): 0(sunday)-6(saturday)

getTime(): 自1970-1-1以来的毫秒数

toLocaleString(): 转换为本地格式的字符串

日期比较

Java使用以下三种方法来比较两个日期:

1. 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2. 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3. 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

使用 SimpleDateFormat 格式化日期

java.text.SimpleDateFormat类支持String和Date的转换。SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。例如:

java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

java.util.Calendar类

从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多。当然在实现方式上Calendar比Date类要复杂一点点。

创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();//默认是当前日期

创建一个指定日期的Calendar对象

使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2009年6月12日的Calendar对象

Calendar c1 = Calendar.getInstance();

c1.set(2009, 6 – 1, 12);

Calendar类对象常用方法

getInstance(): 得到当前日期和时间

set(): 可以只设定某个字段,且其它所有的数值会被重新计算

add(): add(Calendar.DATE, 10); 表示为10天后的日期,其它所有的数值会被重新计算

get(): 得到某一部分的值,如:YEAR,MONTH,DAY_OF_YEAR …

getTime(): 得到java.util.Date

setTime(Date): 用java.util.Date给Calendar赋值

Calendar类对象信息的获得

Calendar cal = Calendar.getInstance();

// 获得年份

int year = cal.get(Calendar.YEAR);

// 获得月份

int month = cal.get(Calendar.MONTH) + 1;

// 获得日期

int date = cal.get(Calendar.DATE);

// 获得小时

int hour = cal.get(Calendar.HOUR_OF_DAY);

// 获得分钟

int minute = cal.get(Calendar.MINUTE);

// 获得秒

int second = cal.get(Calendar.SECOND);

// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)

int day = cal.get(Calendar.DAY_OF_WEEK);

金融计算

java.math.BigDecimal类是java小数操作的一个专有类,在电商、金融行业 存储跟金额有关的字段。

思考:java里面明明已经有了,float,double这种精度的小数,为什么还需要BigDecimal呢?这难道不是多余吗?

接下来看一个例子:

@Test

public void testDoubleSimple() {

double a = 3;

double b = 10;

double c = a / b;

System.out.println(c);

}

控制台输出结果:0.3

在小数操作中,我们通常希望能有多种自由的定义方式。例如在不同的场景可能需要返回: 0.3, 0.4, 0.333 不同精度,在不同的精度进位时希望能自主控制。这个时候,就轮到BigDecimal出场了。

四则运算方法:

add()

subtract()

multiply()

divide()

java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

注意: 尽量传入String型参数来构造BigDecimal对象,这样才能避免计算误差。

MD5加密

MD5算法是不可逆的,与它同级别的算法还有SHA1, SHA256等。

jdk本身提供java.security.MessageDigest类,它实现了md5加密算法;除此之外,apache也提供更便捷的加密类。

java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

数学运算

java.lang.Math类

pow(): 求幂值

sqrt(): 求平方根

ceil(): 向上取整

floor(): 向下取整

random(): 生成随机的0-1的小数

round(): 四舍五入

abs(): 求绝对值

取随机值

java.util.Random类

这是一个伪随机序列生成器,可以给它提供一个种子(seed),不同的seed产生不同的随机数序列。

Random random = new Random(100);

部分方法:

nextInt()

nextDouble()

java.util.UUID类

这是一个标识符生成器, 它生成全局唯一的32位字符串.

部分方法:

randomUUID()

String uuid = UUID.randomUUID().toString().replaceAll(“-“, “”);

//获取32位随机UUID值

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/50349.html

(0)
上一篇 2024-08-26 20:33
下一篇 2024-08-27 15:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信