Old*_*ick 5 java date date-format
我正在尝试使用DateFormat,我遇到了一个问题,我正在创建一个日期,将其存储为一个字符串,然后将其解析为一个日期,并以某种方式结束相同的日期但是一周中的不同日期.
import java.text.*;
import java.util.*;
public class Dates {
public static void main (String [] args) {
Date d1 = new Date(1000000000000000L);
System.out.println("d1 = " + d1.toString());
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
String s = df.format(d1);
System.out.println(s);
try {
Date d2= df.parse(s);
System.out.println( "Parsed Date = " + d2.toString());
} catch (ParseException e) {
System.out.println("Parse Exception");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了输出;
d1 = Fri Sep 27 02:46:40 BST 33658
27/09/58
Parsed Date = Sat Sep 27 00:00:00 BST 1958
Run Code Online (Sandbox Code Playgroud)
如果我将d1中的毫秒数设置得更小,那么当日期被解析回来时,它会按照我预期的方式运行,其中解析的日期与初始日匹配.
不确定发生了什么,有人可以解释一下吗?
tza*_*man 12
当你将它作为一个字符串存储时,原始年份33658会缩短为'58',然后(合理地)将其解释为1958而不是当你读回它时.
9月27日是1958年的一个星期六,但是3365年的星期五.由于d1你创造了现实年份的毫秒数,所以不会发生不匹配.
DateFormat如果您不想丢失信息,则需要使用更完整的选项.
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |