时间戳转换异常求助:本地正常运行但评测端出现问题
本地运行正常但评测时出现时间戳转换问题
这是一个学校作业项目。我在本地运行程序时,所有功能均正常,但评测人员遇到了时间戳转换问题。
我已多次测试程序,每次结果均符合预期,无法复现评测人员遇到的问题。查阅了时间戳、时区、本地化及服务器相关问题,但未找到有效解决办法,恳请各位提供帮助!
相关代码
TimeUtil 工具类
public abstract class TimeUtil { private static final Locale loc = Locale.getDefault(); private static final ZoneId localZoneId = ZoneId.systemDefault(); private static final ZoneId utcZoneId = ZoneId.of("Etc/UTC"); private static final ZoneId estZoneId = ZoneId.of("America/New_York"); public static final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); public static final LocalTime openHour = LocalTime.of(8, 0, 0); public static final LocalTime closeHour = LocalTime.of(22, 0, 0); public static LocalDateTime utcNow(){ return LocalDateTime.now(utcZoneId); } public static LocalDateTime localNow(){ return LocalDateTime.now(localZoneId); } public static LocalDateTime utcToLocal(LocalDateTime ldt){ return ldt.atZone(utcZoneId).withZoneSameInstant(localZoneId).toLocalDateTime(); } public static LocalDateTime localToUtc(LocalDateTime ldt) { return ldt.atZone(localZoneId).withZoneSameInstant(utcZoneId).toLocalDateTime(); } public static LocalDateTime utcToEst(LocalDateTime ldt) { return ldt.atZone(utcZoneId).withZoneSameInstant(estZoneId).toLocalDateTime(); } public static LocalDateTime localToEst(LocalDateTime ldt) { return ldt.atZone(localZoneId).withZoneSameInstant(estZoneId).toLocalDateTime(); } }
时间转换调用代码片段
LocalDateTime start = TimeUtil.localToUtc(LocalDateTime.of(startDate.getValue() ,LocalTime.of(Integer.parseInt(startHour.getSelectionModel().getSelectedItem()), Integer.parseInt(startMin.getSelectionModel().getSelectedItem()), 0))); LocalDateTime end = TimeUtil.localToUtc(LocalDateTime.of(endDate.getValue(), LocalTime.of(Integer.parseInt(endHour.getSelectionModel().getSelectedItem()), Integer.parseInt(endMin.getSelectionModel().getSelectedItem()), 0))); if (TimeUtil.isValid(Integer.parseInt(apptId.getText()), start, end)) { }
内容的提问来源于stack exchange,提问作者Forrest Young
相关产品推荐
相关产品推荐

