我写了下面正在运行的代码,并给出输出。但我不确定这是正确的。SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");Date date = new Date();sdf.setTimeZone(TimeZone.getTimeZone("GMT-7"));String value = sdf.format(date);System.out.println(value);Date date2 = sdf.parse(value);long result = date2.getTime();System.out.println(result);return result;我正在尝试的上述代码是,我只需要获取 GMT 时区的当前时间并将其转换为将在 Oracle db 中使用的纪元格式。谁能告诉我那个格式,上面的代码是对的吗?
3 回答
杨魅力
TA贡献1811条经验 获得超6个赞
为什么不使用Calendar类?
public long getEpochTime(){
return Calendar.getInstance(TimeZone.getTimeZone("GMT-7")).getTime().getTime()/1000; //( milliseconds to seconds)
}
它将返回当前日期的纪元/Unix 时间戳。
基于 Harald 的评论:
public static long getEpochTime(){
return Clock.system(TimeZone.getTimeZone("GMT-7").toZoneId() ).millis()/1000;
}
大话西游666
TA贡献1817条经验 获得超14个赞
这是使用java.time API的解决方案
ZonedDateTime zdt = LocalDateTime.now().atZone(ZoneId.of("GMT-7")); long millis = zdt.toInstant().toEpochMilli();
添加回答
举报
0/150
提交
取消