java 将2001/9/9 之前的时间转成时间戳的问题

SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒",
Locale.CHINA);
Date date;
String times = null;
try {
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, 10);
} catch (ParseException e) {
e.printStackTrace();
}
return times;
以我生日为例,1994年12月06日00时00分00秒 转成时间戳 应该为0786643200,但是这个方法转成long格式的时候首位0被省略 再转为String的时候 就变成了7866432000了也就是2219/4/13 0:0:0 求大佬解答下 这个情况怎么解决 拜谢!

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse("1994-12-06");
long l = d.getTime()/1000;//786643200
System.out.println(l);
时间戳的是786643200,不是0786643200

首位不是1开头的吗。。。。

if (year > 2001) {
size = 10;
} else {
if (year == 2001) {
int month = Integer.parseInt(time.substring(5, 7));
if (month > 9) {
size = 10;
}
if (month < 9) {
size = 9;
}
if (month == 9) {
int day = Integer.parseInt(time.substring(8, 10));
if (day > 9) {
size = 10;
}
if (day <= 9) {
size = 9;
}
}
} else {
size = 9;
}
}
应该是这样 - -

我现在是 把传过来的字符串里年月日 截取出来 判断
int size = 0;
int year = Integer.parseInt(time.substring(0, 4));
if (year > 2001) {
size = 10;
} else {
int month = Integer.parseInt(time.substring(5, 7));
if (month > 9) {
size = 10;
}
if (month < 9) {
size = 9;
}
if (month == 9) {
int day = Integer.parseInt(time.substring(8, 10));
if (day > 9) {
size = 10;
}
if (day <= 9) {
size = 9;
}
}
}
SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒",
Locale.CHINA);
Date date;
String times = null;
try {
date = sdr.parse(time);
long l = date.getTime();
String stf = String.valueOf(l);
times = stf.substring(0, size);
if (size == 9) {
times = "0" + times;
}
Log.d("--444444---", times);
} catch (ParseException e) {
e.printStackTrace();
}
return times;
不知道有没比这更方便的方法,这个判断看着难受- -

图片说明
和你说的有点不一样啊??

    String dateString="1992-07-12";
    SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
    Date date=sdf.parse(dateString);
    System.out.println(date.getTime());//710870400000
    Date date2=new Date(date.getTime());
    System.out.println(date2.toLocaleString());//1992-7-12 0:00:00

你这个问题是 times = stf.substring(0, 10); 截取字符串造成的,然后秒和毫秒的单位换算也没有考虑