我需要在Timestamp实例中设置所有零。
这是我试过的代码
import java.sql.Timestamp;
public class UI
{
public static void main(String args[])
{
Timestamp timestamp = Timestamp.valueOf("0000-00-00 00:00:00.0");
System.out.println(timestamp);
}
}
显示输出
0002-11-30 00:00:00.0
如何设置Timestamp的值以便输出显示
0000-00-00 00:00:00.0
答案 0 :(得分:3)
无法将Timestamp
实例化为0000-00-00 00:00:00
valueOf
调用构造函数,源代码中包含以下javadoc(取自offical javadocs API):
Constructs a Timestamp object initialized with the given values.
Deprecated: instead use the constructor Timestamp(long millis)
Parameters:
year the year minus 1900
month 0 to 11
date 1 to 31
hour 0 to 23
minute 0 to 59
second 0 to 59
nano 0 to 999,999,999
日期参数的值必须介于1-31之间。
答案 1 :(得分:1)
'0000-00-00 00:00:00'
无法表示为java.sql.Timestamp
试试这个
public class Test {
public static void main(String[] args) {
try {
String[] s = {"0001-01-01 00:00:00.0", "0000-00-00 00:00:00"};
for (String value : s) {
Timestamp t = Timestamp.valueOf(value);
System.out.println(t.toString() + ", " + t.getTime());
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
答案 2 :(得分:0)
没有第0个月有第0天(根据您的日历,没有第0年)。如果要更改时间戳打印的方式,可以执行此操作
Timestamp ts = new Timestamp(Long.MIN_VALUE) {
public String toString() {
return "0000-00-00 00:00:00.0";
}
};
这将以您期望的方式打印。
答案 3 :(得分:0)
对java.sql.Timestamp文档进行快速检查后发现,类 - 时间戳仅支持以下参数值:
因此,您的问题的答案是,您无法将值设置为:
0000-00-00 00:00:00.0
但是,您可以将小时,分钟,秒和纳秒值设置为00:00:00.0
。
您是否能够成功执行代码? 执行您的代码导致:
线程" main"中的例外情况java.lang.IllegalArgumentException:时间戳格式必须为yyyy-mm-dd hh:mm:ss [.fffffffff] at java.sql.Timestamp.valueOf(Unknown Source)