零碎知识

1.Math.ceil会导致精度缺失问题。

 System.out.println(Math.ceil(1.000000000000000005));//结果是1

在这里插入图片描述
在这里插入图片描述

因为这个时候系统已经认为1.0000000000000000005等于1.0了。因此尽量不用ceil尽可能使用下面两种。
第一种:

int n=a/b;
if(a%b>0){
n++;
}

第二种:

return (a+b-1)/b;

2.日期类的使用

UTC世界标准时间,GMT格林尼治时间,含义不一样,但是看起来是一样的。

2.1Date类,常用方法

常用方法含义
Date(long time)构造方法
long getTime()获取毫秒数
voide setTime(long time)通过毫秒数设置时间
boolean after(Date date)比较日期先后
booleam before(Date date)同上

2.2SimpleDateFormat类

常用方法含义
SimpleDateFormat(String pattern)构造函数用的是默认时区,如果系统设置了时区,则用做默认时区,如果没设置,则用GMT作为默认时区
public SimpleDateFormat(String pattern, Locale locale)指定时区
Date parse(String time)将字符串表示的时间转成日期对象
String format(Date date)将日期对象转成字符串时间
void setTimeZone(…)设置时区

这是系统设置了时区是UTC+08:00
在这里插入图片描述
如果使用SimpleDateFormate(String pattern)则是GMT时区,会比北京时间晚8个小时

             SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            df.setTimeZone(TimeZone.getTimeZone("GMT"));//"GMT+08:00"
            Date date = new Date(System.currentTimeMillis());
            System.out.println(df.format(date));
            System.out.println(df.getTimeZone().toString());

在项目中要设置时区,因为在不同的机器上,如果不设置时区,有一些机器可能为设置系统时区,那就会使用"GMT"作为默认时区。

设置时区的方法:

表示北京时间 (东八区)
SimpleDateFormat(yyyy-MM-dd HH:mm:ss, Locale.CHINA)
df.setTimeZone(TimeZone.getTimeZone(“GMT”))
df.setTimeZone(TimeZone.getTimeZone(“GMT+08:00”))
df.setTimeZone(TimeZone.getTimeZone(“Asia/Shanghai”))

https://img.jbzj.com/file_images/article/201905/20195292326889.png?20194292351

2.3Calendar类

常用方法

Calendar.getinstance()返回一个Clendar实例
setTime(Date)设置日期对象
getTime(Date)获取日期对象
int get(int field(eg.Callendar.YEAR,Calendar.MONTH等))获取对应的数字,如一月返回0,二月返回1
void set(int filed,int value)设置对应域的值,如设置年,设置月
void set(int year,int month,int day设置年月日
void clear()所有字段都会被设置为未设过,内部的long time会变会0,回到1970
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值