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) 将 毫秒时间 格式化为 指定格式longgetBeginOfMonth(long epochMilli) 获取本月的开始时间戳 本月第一天的 00:00:00.000longgetBeginOfMonth(long epochMilli, int deltaMonth) 获取月的开始时间戳longgetBeginOfToday(long epochMilli) 获取指定时间戳所在日期的00:00:00的毫秒时间戳longgetBeginOfWeek(long epochMilli) 获取指定时间戳所在周的周一00:00:00的毫秒时间戳longgetEndOfMonth(long epochMilli) 获取本月的结束时间戳 本月最后一天的23:59:59.999longgetEndOfMonth(long epochMilli, int deltaMonth) 获取月的结束时间戳longgetEndOfToday(long epochMilli) 获取指定时间戳所在日期的23:59:59的毫秒时间戳longgetEndOfWeek(long epochMilli) 获取指定时间戳所在周的周日23:59:59.999的毫秒时间戳long获取时区的毫秒偏移量long获取时区的秒偏移量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) 解析为毫秒时间戳toDateTime(long epochMilli) 将毫秒时间转换为LocalDateTimetoDateTimeIgnoreMs(long epochMilli) 将毫秒时间转换为LocalDateTime,并忽略毫秒部分。inttoEpochDay(long epochMilli) 计算在本地时区下的纪元天数inttoEpochDay(long epochMilli, boolean ceil) 计算在本地时区下的纪元天数longtoEpochMillis(LocalDateTime localDateTime) 将LocalDateTime转换为时区无关的毫秒时间戳。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,则可能在时区上出现故障。 -
toEpochDay
public int toEpochDay(long epochMilli) 计算在本地时区下的纪元天数- 参数:
epochMilli- 毫秒时间- 返回:
- 本地时区下的天数
-
toEpochDay
public int toEpochDay(long epochMilli, boolean ceil) 计算在本地时区下的纪元天数- 参数:
epochMilli- 毫秒时间ceil- 是否向上取整- 返回:
- 本地时区下的天数
-
toDateTime
将毫秒时间转换为LocalDateTime- 参数:
epochMilli- 毫秒时间- 返回:
- LocalDateTime
-
toDateTimeIgnoreMs
将毫秒时间转换为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) 获取当天特定小时的时间戳 -
getBeginOfToday
public long getBeginOfToday(long epochMilli) 获取指定时间戳所在日期的00:00:00的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定日期- 返回:
- midnight of special day
-
getEndOfToday
public long getEndOfToday(long epochMilli) 获取指定时间戳所在日期的23:59:59的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定日期- 返回:
- end time of special day
-
getBeginOfWeek
public long getBeginOfWeek(long epochMilli) 获取指定时间戳所在周的周一00:00:00的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定所在的周
-
getEndOfWeek
public long getEndOfWeek(long epochMilli) 获取指定时间戳所在周的周日23:59:59.999的毫秒时间戳- 参数:
epochMilli- 指定时间戳,用于确定所在的周
-
getBeginOfMonth
public long getBeginOfMonth(long epochMilli) 获取本月的开始时间戳 本月第一天的 00:00:00.000 -
getEndOfMonth
public long getEndOfMonth(long epochMilli) 获取本月的结束时间戳 本月最后一天的23:59:59.999 -
getBeginOfMonth
public long getBeginOfMonth(long epochMilli, int deltaMonth) 获取月的开始时间戳- 参数:
deltaMonth- 月份差值
-
getEndOfMonth
public long getEndOfMonth(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
-