返回自从GMT 1970-01-01 00:00:00到此date对象上时间的毫秒数。那date对象是1970年之前呢,比如1921年也是返回的距1970-01-01的毫秒数吗
getTime方法是不带参数的,所以取不到,如果你要计算1921年的 你得换一个方法
负数
这就是我疑问的地方,下面是我网上找的一种解法,不太理解两个Date对象(一个在70年前,一个在70年后)getTime方法做差值 题目:请问从 1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包含多少分钟?
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date d1 = new Date(2020, 7, 1, 12,0);
Date d2 = new Date(1921, 7, 23, 12,0);
long ans = d1.getTime() - d2.getTime();
System.out.println(ans/60000);
}
}
这个代码哪里有问题吗?相减就是1921到2020年的毫秒数
Date d1 = new Date(2020, 7, 1, 12,0);
Date d2 = new Date(1921, 7, 23, 12,0);
这两个构造器不是返回1970年以后的毫秒数。。。看看源码再得结论!!!
public static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static Date strToDate(String dateTimeStr){
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(STANDARD_FORMAT);
DateTime dateTime = dateTimeFormatter.parseDateTime(dateTimeStr);
return dateTime.toDate();
}
Date date = strToDate("1960-05-30 10:11:02");
System.out.println("1960-05-30 10:11:02 结果为: " + date.getTime());
System.out.println(strToDate("1960-05-30 10:11:02").getTime() + 5* 60 * 1000 + "");
结果: 1960-05-30 10:11:02 结果为: -302651338000
-302651038000
是负数 ,问题是mysql好像不接受负值的时间戳,楼主你是想保存时间戳到数据库吗?
转成datetime啊
select DATE_ADD(FROM_UNIXTIME(0), INTERVAL -302651038000 SECOND)
bigint不知道行不行, 你可以试试