栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Java中比较不同时区的小时数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Java中比较不同时区的小时数?

java.util.Date
类是持有1970年1月00:00:00,UTC以来毫秒数的容器。请注意,该类
Date
对时区一无所知。
Calendar
如果您需要使用时区,请使用class
。( 编辑 2017年1月19日:如果您使用的是Java 8,请使用包中的新日期和时间API
java.time
)。

上课

Date
并不适合容纳没有日期的小时数(例如13:00或18:00)。它根本不是出于此目的而设计的,因此,如果您尝试像那样使用它,就像您正在做的那样,则会遇到许多问题,并且解决方案将不会很优雅。

如果您忘记了使用类

Date
来存储工作时间,而只使用整数,则这会简单得多:

Date userDate = ...;TimeZone userTimeZone = ...;int companyWorkStartHour = 13;int companyWorkEndHour = 18;Calendar cal = Calendar.getInstance();cal.setTime(userDate);cal.setTimeZone(userTimeZone);int hour = cal.get(Calendar.HOUR_OF_DAY);boolean withinCompanyHours = (hour >= companyWorkStartHour && hour < companyWorkEndHour);

如果您还想考虑几分钟(而不只是几个小时),则可以执行以下操作:

int companyWorkStart = 1300;int companyWorkEnd = 1830;int time = cal.get(Calendar.HOUR_OF_DAY) * 100 + cal.get(Calendar.MINUTE);boolean withinCompanyHours = (time >= companyWorkStart && time < companyWorkEnd);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号