1700452980
(3)时区时间
1700452981
1700452982
这个比较简单实用,给定一个时区或地区代码即可计算出该时区的时间,比如在一个全球系统中,数据库中全部是按照标准时间来记录的,但是在展示层要按照不同的用户、不同的时区展现,这就涉及时区计算了,代码如下:
1700452983
1700452984
//当前时间戳
1700452985
1700452986
DateTime dt=new DateTime();
1700452987
1700452988
//此时伦敦市的时间
1700452989
1700452990
dt.withZone(DateTimeZone.forID(“Europe/London”));
1700452991
1700452992
//计算出标准时间
1700452993
1700452994
dt.withZone(DateTimeZone.UTC);
1700452995
1700452996
Joda还有一个优点,它可以与JDK的日期库方便地进行转换,可以从java.util.Date类型转为Joda的DateTime类型,也可以从Joda的DateTime转为java.util.Date,代码如下:
1700452997
1700452998
DateTime dt=new DateTime();
1700452999
1700453000
//Joda的DateTime转为JDK的Date
1700453001
1700453002
Date jdkDate=dt.toDate();
1700453003
1700453004
//JDK的Date转为Joda的DateTime
1700453005
1700453006
dt=new DateTime(jdkDate);
1700453007
1700453008
经过这样的转换,Joda可以很好地与现有的日期类保持兼容,在需要复杂的日期计算时使用Joda,在需要与其他系统通信或写到持久层中时则使用JDK的Date。Joda是一种令人惊奇的高效工具,无论是计算日期、打印日期,或是解析日期,Joda都是首选,当然日期工具类也可以选择date4j,它也是一个不错的开源工具,这里就不再赘述了。
1700453009
1700453010
1700453011
1700453012
1700453014
编写高质量代码:改善Java程序的151个建议 建议143:可以选择多种Collections扩展
1700453015
1700453016
为什么这么多的开源框架热衷于Collections的扩展呢?是因为我们程序(经典的定义:程序=算法+数据结构,想想看数据结构是为谁而服务的)主要处理的是一大批数据,而能容纳大量数据的也就是Collections类和数组了,但是数据的格式具有多样性,比如数据映射关系多样,数据类型多样等,下面我们再介绍三个比较有个性的Collections扩展工具包。
1700453017
1700453018
(1)fastutil
1700453019
1700453020
fastutil(按照Java的拼写规则应该为FastUtil,但是官网就是这样命名的,我们尊重官方)是一个更新比较频繁的工具包,它的最新版本是6.3,主要提供了两种功能:一种是限定键值类型(Type Specific)的Map、List、Set等,另一种是大容量的集合。我们先来看示例代码:
1700453021
1700453022
//明确键类型的Map
1700453023
1700453024
Int2ObjectMap<String>map=new Int2ObjectOpenHashMap<String>();
1700453025
1700453026
map.put(100,“A”);
1700453027
1700453028
//超大容量的List,注意调整JVM的Heap内存
1700453029
[
上一页 ]
[ :1.70045298e+09 ]
[
下一页 ]