时间戳与时间之间的转换

▼魔方 西西 提交于 2019-12-12 20:50:35

时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

1.Java中转换:

时间戳转换为时间:

Long timeStamp = System.currentTimeMillis();  //获取当前时间戳
System.out.println(timeStamp);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sd = sdf.format(new Date(Long.parseLong(String.valueOf(timeStamp))));      // 时间戳转换成时间
System.out.println("格式化结果:" + sd);

时间转化为时间戳:

SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time="2019-04-44 11:45:55";
Date date = format.parse(time);
System.out.print("格式化结果:"+date.getTime());

2.Js中转换:

(1).js获取指定时间戳的方法(时间转换成时间戳)

var times1= (new Date("2019/12/12 08:00:00")).getTime()/1000;

(2)js获取当前时间戳的方法(时间转换成时间戳)

var times2 = Date.parse(new Date());//缺点:毫秒级别的数值被转化为000
var times3 = (new Date()).valueOf();//获取了当前毫秒的时间戳,准确。
var times4 = new Date().getTime();//getTime()返回数值的单位是毫秒

(3)js中时间戳转换成时间

//直接用new Date(要转换的时间戳)来获取时间戳所代表的的日期,其中注意时间戳一定要是Int型,否则转换会失败。如果不是,ParseInt()一下。
var times=new Date(1472048779952);

3.在MySQL中转换:

select FROM_UNIXTIME(1156219870);//时间戳转日期    输出:2006-08-22 12:11:10

Select UNIX_TIMESTAMP('2006-11-04 12:23:00');//转时间戳

SELECT *FROM u_animalheat WHERE DATE_FORMAT(FROM_UNIXTIME(时间戳字段),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')  //根据   时间戳   查询当天数据

SELECT * FROM u_animalheat WHERE YEARWEEK(FROM_UNIXTIME(时间戳字段)) = YEARWEEK(NOW())//根据   时间戳   查询当周数据

 SELECT * FROM u_animalheat WHERE DATE_FORMAT(FROM_UNIXTIME(时间戳字段),'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')//根据   时间戳   查询当月数据

SELECT * FROM 表名 WHERE DATE_FORMAT(FROM_UNIXTIME(时间戳字段),'%Y') = DATE_FORMAT(NOW(),'%Y') ORDER BY FROM_UNIXTIME(时间戳字段)/根据   时间戳   查询当年数据

4.计算某一日期是星期几

基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数,m表示月份数,y表示年数。(其中mod意思是取余计算,js用的是%)

部分转载自:https://blog.csdn.net/withawind/article/details/82584867;https://blog.csdn.net/xj932956499/article/details/80759903;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!