Java中还未过时的Date类的方法摘要(记录时间:2020-10-19)

Java中还未过时的Date类的方法摘要(记录时间:2020-10-19)

1.after(Date when)

变量和类型:boolean
描述:测试此日期是否在指定日期之后。

public boolean after​(Date when) 测试此日期是否在指定日期之后。
参数 when - 约会。 结果
true当且仅当此Date对象所代表的时刻严格晚于when代表的when ; 否则为false 。 异常
NullPointerException - 如果 when为空。

2.before(Date when)

变量和类型:boolean
描述:测试此日期是否在指定日期之前。

public boolean before​(Date when) 测试此日期是否在指定日期之前。
参数 when - 约会。 结果
true当且仅当此Date对象所代表的时刻严格早于when代表的when ; false否则。
异常
NullPointerException - 如果 when为空。

3.clone()

变量和类型:Object
描述:返回此对象的副本

public Object clone() 返回此对象的副本。
重写: clone在类 Object
结果 这个实例的克隆。
另请参见: Cloneable

4.compareTo(Date anotherDate)

变量和类型:int
描述:比较两个日期的订购。

public int compareTo​(Date anotherDate) 比较两个日期的订购。
Specified by: compareTo在界面 Comparable
参数 anotherDate - 待比较的 Date 。
结果
如果参数Date等于此Date,则值为0 ;
如果此Date在Date参数之前,则小于0的值;
如果此Date位于Date参数之后,则值大于0 。
异常 NullPointerException - 如果anotherDate为空。
从以下版本开始: 1.2

5.equals(Object obj)

变量和类型:boolean
描述:比较相等的两个日期

public boolean equals​(Object obj) 比较两个相等的日期。
当且仅当参数不是null并且是Date对象时,结果为true ,该对象表示与此对象相同的时间点,以毫秒为单位。
因此,当且仅当getTime方法为两者返回相同的long值时,两个Date对象相等。
重写: equals在类 Object 参数 obj - 要与之比较的对象。
结果 true如果对象相同; 否则为false 。
另请参见: getTime()

6.getTime()

变量和类型:long
描述:返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。

public long getTime() 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
结果 :
自1970年1月1日00:00:00 GMT以来的毫秒数。

7.hashCode()

变量和类型:int
描述:返回此对象的哈希码值

public int hashCode() 返回此对象的哈希码值。 结果是getTime()方法返回的原始long值的两半的异或。也就是说,哈希码是表达式的值:
(int)(this.getTime()^(this.getTime() >>> 32))
重写: hashCode在类 Object
结果 此对象的哈希码值。
另请参见: Object.equals(java.lang.Object) ,System.identityHashCode(java.lang.Object)

8.setTime()

变量和类型:void
描述:将此 Date对象设置为表示格林尼治标准时间1970年1月1日00:00:00之后的 time毫秒的时间点。

public void setTime​(long time)
将此Date对象设置为表示格林威治标准时间1970年1月1日00:00:00之后的 time毫秒的时间点。
参数
time - 毫秒数。

9.toInstant()

变量和类型:Instant 描述:将此Date对象转化为Instant

public Instant toInstant()
将此Date对象转换为Instant 。
转换创建一个Instant,表示时间线上的相同点,如Date 。

结果 表示时间线上与此 Date对象相同的点的瞬间
从以下版本开始:
1.8

10.toString()

变量和类型:String
描述:将此Date对象转换为以下形式的String

public String toString() 将此Date对象转换为以下形式的String :
dow mon dd hh:mm:ss zzz yyyy

哪里:
dow是星期几( Sun, Mon, Tue, Wed, Thu, Fri, Sat )的。
mon是个月( Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec )。
dd是该月的第几天( 01到31 ),以小数点后两位数。
hh是一天中的小时( 00到23 ),以小数点后两位数。
mm是小时内的分钟(00到59 ),以小数点后两位数。
ss是分钟内的第二个( 00到61) ,两位十进制数字。
zzz是时区(可能反映夏令时)。
标准时区缩写包括方法parse识别的缩写。
如果时区信息不可用,则zzz为空 - 也就是说,它根本不包含任何字符。
yyyy是年份,十四位数。
重写: toString类 Object
结果 此日期的字符串表示形式。
另请参见:
toLocaleString() , toGMTString()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用如下的 Java 代码实现: ``` import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; public class Main { public static void main(String[] args) throws ParseException { List<Map<String, String>> A = new ArrayList<>(); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:04:00"); put("endtime", "2020-01-01 00:06:00");}}); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:01:05"); put("endtime", "2020-01-01 00:03:15");}}); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:09:00"); put("endtime", "2020-01-01 00:10:00");}}); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:07:35"); put("endtime", "2020-01-01 00:08:40");}}); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:12:00"); put("endtime", "2020-01-01 00:17:00");}}); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:12:05"); put("endtime", "2020-01-01 00:13:10");}}); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:19:00"); put("endtime", "2020-01-01 00:21:00");}}); A.add(new HashMap<String, String>() {{put("begintime", "2020-01-01 00:15:20"); put("endtime", "2020-01-01 00:20:45");}}); List<Map<String, String>> result = mergeTime(A); System.out.println(result); } public static List<Map<String, String>> mergeTime(List<Map<String, String>> A) throws ParseException { List<Map<String, String>> result = new ArrayList<>(); if (A == null || A.size() == 0) { return result; } // 按照起始时间排序 Collections.sort(A, new Comparator<Map<String, String>>() { public int compare(Map<String, String> o1, Map<String, String> o2) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date beginTime1 = sdf.parse(o1.get("begintime")); Date beginTime2 = sdf.parse(o2.get("begintime")); return beginTime1.compareTo(beginTime2); } catch (ParseException e) { e.printStackTrace(); return 0; } } }); String beginTime = A.get(0).get("begintime"); String endTime = A.get(0).get("endtime"); for (int i = 1; i < A.size(); i++) { String curBeginTime = A.get(i).get("begintime"); String curEndTime = A.get(i).get("endtime"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date endTimeDate = sdf.parse(endTime); Date curBeginTimeDate = sdf.parse(curBeginTime); if (endTimeDate.compareTo(curBeginTimeDate) >= 0) { // 有重合 endTime = curEndTime.compareTo(endTime) > 0 ? curEndTime : endTime; } else { // 无重合 result.add(new HashMap<String, String>() {{put("begintime", beginTime); put("endtime", endTime);}}); beginTime = curBeginTime; endTime = curEndTime; } } result.add(new HashMap<String, String>() {{put("begintime", beginTime); put("endtime", endTime);}}); return result; } } ``` 在程序,首先按照起始时间对照明设备进行排序。然后遍历整个集合,对于当前照明设备,如果其起始时间与前一个照明设备的结束时间有重合,那么将它们合并为一个时间段;否则将前一个时间段加入结果集合,并开始新的时间段。最后将最后一个时间段加入结果集合即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值