Java.util.date年大三千
Java.util.date year bigger than three thousand
我有一个将日期插入数据库的应用程序。当我在 Data Source Explorer 中使用 Eclipse neon 打开条目时,我发现日期中的年份值为 "3916"
(示例:3916-10-05)。知道变量是 java.util.date 类型并且数据库中的列是 DATE.
类型
我认为这个例子将帮助您了解您真正的问题是什么 (try it):
import java.util.Date;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Date date = new Date(1475625600000L); //2016-10-05
int year = date.getYear();
System.out.println("Year from epoch: " + date.getYear());
date.setYear(2016);
System.out.println("Year from setYear() " + date.getYear());
System.out.println("Full date: " + date.toString());
}
}
这将打印
Year from epoch: 116
Year from setYear() 2016
Full date: Thu Oct 05 00:00:00 GMT 3916
java.util.Date 在处理日期中的年份时有点奇怪。当您设置年份时它使用 1900 的偏移量,当您从日期中获取年份时减去它。
getYear()
Deprecated.
As of JDK version 1.1, replaced by Calendar.get(Calendar.YEAR) - 1900.
setYear(int year)
Deprecated.
As of JDK version 1.1, replaced by Calendar.set(Calendar.YEAR, year + 1900).
如果您尝试将年份设置为其 4 位数字形式,您最终会得到 3900 之后的日期。
我有一个将日期插入数据库的应用程序。当我在 Data Source Explorer 中使用 Eclipse neon 打开条目时,我发现日期中的年份值为 "3916"
(示例:3916-10-05)。知道变量是 java.util.date 类型并且数据库中的列是 DATE.
我认为这个例子将帮助您了解您真正的问题是什么 (try it):
import java.util.Date;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
Date date = new Date(1475625600000L); //2016-10-05
int year = date.getYear();
System.out.println("Year from epoch: " + date.getYear());
date.setYear(2016);
System.out.println("Year from setYear() " + date.getYear());
System.out.println("Full date: " + date.toString());
}
}
这将打印
Year from epoch: 116
Year from setYear() 2016
Full date: Thu Oct 05 00:00:00 GMT 3916
java.util.Date 在处理日期中的年份时有点奇怪。当您设置年份时它使用 1900 的偏移量,当您从日期中获取年份时减去它。
getYear()
Deprecated.
As of JDK version 1.1, replaced by Calendar.get(Calendar.YEAR) - 1900.
setYear(int year)
Deprecated.
As of JDK version 1.1, replaced by Calendar.set(Calendar.YEAR, year + 1900).
如果您尝试将年份设置为其 4 位数字形式,您最终会得到 3900 之后的日期。