java.lang.Object
cn.wjybxx.base.time.TimeHelper
主要封装与时区相关的方法
(去除继承限制,子类应当保持实现为不可变)
- 作者:
- wjybxx date 2023/4/1
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明intdifferDays(long time1, long time2) 计算两个时间戳相差的天数intdifferWeeks(long time1, long time2) 计算两个时间戳相差的周数formatTime(long epochMilli) 将 毫秒时间 格式化为 默认字符串格式TimeUtils.DEFAULT_PATTERNformatTime(long epochMilli, DateTimeFormatter formatter) 将 毫秒时间 格式化为 指定格式long获取时区的毫秒偏移量long获取时区的秒偏移量longgetTimeBeginOfMonth(long epochMilli) 获取本月的开始时间戳 本月第一天的 00:00:00.000longgetTimeBeginOfMonth(long epochMilli, int deltaMonth) 获取月的开始时间戳longgetTimeBeginOfToday(long epochMilli) 获取指定时间戳所在日期的00:00:00的毫秒时间戳longgetTimeBeginOfWeek(long epochMilli) 获取指定时间戳所在周的周一00:00:00的毫秒时间戳longgetTimeEndOfMonth(long epochMilli) 获取本月的结束时间戳 本月最后一天的23:59:59.999longgetTimeEndOfMonth(long epochMilli, int deltaMonth) 获取月的结束时间戳longgetTimeEndOfToday(long epochMilli) 获取指定时间戳所在日期的23:59:59的毫秒时间戳longgetTimeEndOfWeek(long epochMilli) 获取指定时间戳所在周的周日23:59:59.999的毫秒时间戳longgetTimeHourOfToday(long epochMilli, int hour) 获取当天特定小时的时间戳获取时区偏移booleanisSameDay(long time1, long time2) 判断两个时间是否是同一天 (同样的两个时间戳,在不同的时区,结果可能不同)booleanisSameWeek(long time1, long time2) 判断两个时间是否是同一周static TimeHelperof(ZoneOffset zoneOffset) longparseTimeMillis(String dateString) 解析为毫秒时间戳longparseTimeMillis(String dateString, DateTimeFormatter formatter) 解析为毫秒时间戳longtoEpochMillis(LocalDateTime localDateTime) 将LocalDateTime转换为时区无关的毫秒时间戳。toLocalDateTime(long epochMilli) 将毫秒时间转换为LocalDateTimetoLocalDateTimeIgnoreMs(long epochMilli) 将毫秒时间转换为LocalDateTime,并忽略毫秒。inttoLocalEpochDay(long epochMilli) 计算在本地时区下的纪元天数static String固定格式: yyyy-MM-ddtoString(LocalDateTime localDateTime) 组合下来4中格式: yyyy-MM-ddTHH:mm:ssZ yyyy-MM-ddTHH:mm:ss.SSSZ yyyy-MM-ddTHH:mm:ss±HH:mm yyyy-MM-ddTHH:mm:ss.SSS±HH:mmstatic String两种格式 HH:mm:ss HH:mm:ss.SSS 毫秒数不为0时static StringtoString(ZoneOffset zoneOffset) 两种格式 Z ±HH:mm
-
字段详细资料
-
SYSTEM
系统时区对应的辅助类实例 -
zoneOffset
-
-
构造器详细资料
-
TimeHelper
-
-
方法详细资料
-
of
-
getZoneOffset
获取时区偏移 -
getOffsetSeconds
public long getOffsetSeconds()获取时区的秒偏移量 -
getOffsetMillis
public long getOffsetMillis()获取时区的毫秒偏移量 -
toEpochMillis
将LocalDateTime转换为时区无关的毫秒时间戳。 注意:如果不是该类返回的LocalDateTime,则可能在时区上出现故障。 -
toLocalEpochDay
public int toLocalEpochDay(long epochMilli) 计算在本地时区下的纪元天数- 参数:
epochMilli- 毫秒时间- 返回:
- 本地时区下的天数
-
toLocalDateTime
将毫秒时间转换为LocalDateTime- 参数:
epochMilli- 毫秒时间- 返回:
- LocalDateTime
-
toLocalDateTimeIgnoreMs
将毫秒时间转换为LocalDateTime,并忽略毫秒。- 参数:
epochMilli- 毫秒时间- 返回:
- LocalDateTime
-
formatTime
将 毫秒时间 格式化为 默认字符串格式TimeUtils.DEFAULT_PATTERN- 参数:
epochMilli- 毫秒时间- 返回:
- 格式化后的字符串表示
-
formatTime
将 毫秒时间 格式化为 指定格式- 参数:
epochMilli- 毫秒时间formatter- 时间格式器- 返回:
- 格式化后的字符串表示
-
parseTimeMillis
解析为毫秒时间戳- 参数:
dateString-TimeUtils.DEFAULT_PATTERN格式的字符串- 返回:
- milli
-
parseTimeMillis
解析为毫秒时间戳- 参数:
dateString-TimeUtils.DEFAULT_PATTERN格式的字符串- 返回:
- milli
-
getTimeHourOfToday
public long getTimeHourOfToday(long epochMilli, int hour) 获取当天特定小时的时间戳 -
getTimeBeginOfToday
public long getTimeBeginOfToday(long epochMilli) 获取指定时间戳所在日期的00:00:00的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定日期- 返回:
- midnight of special day
-
getTimeEndOfToday
public long getTimeEndOfToday(long epochMilli) 获取指定时间戳所在日期的23:59:59的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定日期- 返回:
- end time of special day
-
getTimeBeginOfWeek
public long getTimeBeginOfWeek(long epochMilli) 获取指定时间戳所在周的周一00:00:00的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定所在的周
-
getTimeEndOfWeek
public long getTimeEndOfWeek(long epochMilli) 获取指定时间戳所在周的周日23:59:59.999的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定所在的周
-
getTimeBeginOfMonth
public long getTimeBeginOfMonth(long epochMilli) 获取本月的开始时间戳 本月第一天的 00:00:00.000 -
getTimeEndOfMonth
public long getTimeEndOfMonth(long epochMilli) 获取本月的结束时间戳 本月最后一天的23:59:59.999 -
getTimeBeginOfMonth
public long getTimeBeginOfMonth(long epochMilli, int deltaMonth) 获取月的开始时间戳- 参数:
deltaMonth- 月份差值
-
getTimeEndOfMonth
public long getTimeEndOfMonth(long epochMilli, int deltaMonth) 获取月的结束时间戳- 参数:
deltaMonth- 月份差值
-
isSameDay
public boolean isSameDay(long time1, long time2) 判断两个时间是否是同一天 (同样的两个时间戳,在不同的时区,结果可能不同)- 参数:
time1- 第一个时间戳time2- 第二个时间戳- 返回:
- true/false,如果是同一天则返回true,否则返回false。
-
differDays
public int differDays(long time1, long time2) 计算两个时间戳相差的天数- 参数:
time1- 第一个时间戳time2- 第二个时间戳- 返回:
- >=0,同一天返回0,否则返回值大于0
-
isSameWeek
public boolean isSameWeek(long time1, long time2) 判断两个时间是否是同一周- 参数:
time1- 第一个时间戳time2- 第二个时间戳- 返回:
- true/false,如果是同一周则返回true,否则返回false。
-
differWeeks
public int differWeeks(long time1, long time2) 计算两个时间戳相差的周数- 参数:
time1- 第一个时间戳time2- 第二个时间戳- 返回:
- >=0,同一周返回0,否则返回值大于0
-
toString
组合下来4中格式: yyyy-MM-ddTHH:mm:ssZ yyyy-MM-ddTHH:mm:ss.SSSZ yyyy-MM-ddTHH:mm:ss±HH:mm yyyy-MM-ddTHH:mm:ss.SSS±HH:mm -
toString
固定格式: yyyy-MM-dd -
toString
两种格式 HH:mm:ss HH:mm:ss.SSS 毫秒数不为0时 -
toString
两种格式 Z ±HH:mm
-