oracle时间转换为时间戳
开发中遇见这样⼀个问题,需要将历史数据刷新成时间戳形式,java中在转换成时间格式,具体做法如下:
第⼀步刷新数据,⽣成时间格式
select (to_date('2019-07-03 10:43:57','yyyy-mm-dd hh24:mi:ss') - to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss'))*86400000  from dual;
第⼆步java转换【注:如果不加8⼩时,java转换差8个⼩时】
public class Main{
public static void main(String[] args){
Long timeStamp =1562121837000L;  //获取当前时间戳
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sd = sdf.format(new Date(timeStamp));      // 时间戳转换成时间
System.out.println("格式化结果:" + sd);
}
}
时间戳转换为时间
select to_char(时间戳的那⼀列 / (1000 * 60 * 60 * 24) +
to_date('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS') AS cdate
FROM 表名 ;
unix时间戳转换日期格式
时间转换为时间戳为什么要减去1970-01-01和增加8⼩时呢,以下是在搜索中到的答案(个⼈认为是对的)
Unix/linux时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型。
⽤当前的时间减去1970年1⽉1⽇8时,得到的天数乘以24⼩时乘以3600秒,得到的结果就是系统时间戳。这⾥⽤8时的原因时系统所处时区为东8区。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。