日期:2014-05-19  浏览次数:20723 次

java 时间和毫秒,相互转换的问题谢谢指教
Java code


public int  IntegertimeTag(Date date){ 
        int time=0;
        Calendar c = Calendar.getInstance();
        SimpleDateFormat   simpledate   =   new   SimpleDateFormat( "yyyy-MM-dd HH:mm:ss "); 
        String   Send_date   =   simpledate.format(date);
        
        try {
            time = (int) simpledate.parse(Send_date).getTime();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
        return time;
    } 
    public Date DatetimeTag(int date){ 
        String time=null;
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        Long now=new Long((long)date); //int  转 long 
          Calendar calendar = Calendar.getInstance();
          calendar.setTimeInMillis(now);
        
          time= formatter.format(calendar.getTime());
          Date date11=null;
          try {
            date11 = formatter.parse(time);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
          
          return date11;
    } 



这个是我自己整理的,代码,因为思路的问题,我代码运行后,得到了下面二个值,

IntegertimeTag(new Date());
String ddfs="Mon May 21 17:22:15 CST 2012";
int ddfi=1857445944;


但是我通过

DatetimeTag(1857445944);得到的日期却是

Mon May 21 17:22:15 CST 2012
Thu Jan 22 07:57:25 CST 1970

这二个时间怎么不相等,

还有个问题,

我这个 时间能不能搞成 2012-05-21 17:22:15 这种格式呀,

谢谢指教,在线等待中。

------解决方案--------------------
你这里的int装会超范围 ,时间最好用Long来装, 在试试
------解决方案--------------------
Calendar是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量,你传入的参数(1857445944)是否加上了Long(1970 年 1 月 1 日的 00:00:00.000转换为long型)。建议参考下API。
------解决方案--------------------
看了很久才看明白lz想表达啥里。看下面一段代码:
time = (int) simpledate.parse(Send_date).getTime();
这里你要将一个Long类型的对象转换成int类型,而这时int类型肯定放不下。所以说问题就出现在这里了。你可以调试下试试,还有,如果你以后正常的操作Date的话,如果出现时间为1970年,那么肯定就还是类似的问题,那个Long类型的对象,就是1970年到所指的时间差
------解决方案--------------------
偶是菜鸟,楼主看下这些代码能用不???
Java code

public class Test {
    public static void main(String[] args){
         Date date = null;
         date = new Date();
         System.out.println(getDateString(date));
         System.out.println(getDateLong(date));
         System.out.println(getDate(getDateLong(date)));
         try {
            System.out.println(getDate(getDateString(date)));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
    
    public static String getDateString(Date date){
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
    }
    public static Date getDate(String dateStr) throws ParseException{
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr);
    }
    public static Long getDateLong(Date date){
        return date.getTime();
    }
    public static Date getDate(Long time){
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(time);
        return calendar.getTime();
    }
}

------解决方案--------------------
public static Date getDate(Long time){
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(time);
return calendar.getTime();
}
可以这样写啊
 public static Date getDate(Long time){
return new Date(time);
}

------解决方案--------------------