这个是UTC时间...我想转换成正常时间..utc=1301497561;(都是数字)正常时间
2011-03-30 15:10:00大概就是在15点十几分左右....
System.out.println(new Date(new Long(utc*1000)).toLocaleString());我是这么转换的.不对....也是从csdn看的嘛大家帮我想想主意吧.

解决方案 »

  1.   


     
    Calendar ca = Calendar.getInstance();
    ca.setTimeInMillis(utc*1000);
    String strDate=ca.get(Calendar.YEAR) + "-"+ (ca.get(Calendar.MONTH) + 1) + "-"+ (ca.get(Calendar.DAY_OF_MONTH));Then, use SimpleDateFormat  
      

  2.   

    Java code 
    Calendar ca = Calendar.getInstance();
    ca.setTimeInMillis(utc*1000);
    String strDate=ca.get(Calendar.YEAR) + "-"+ (ca.get(Calendar.MONTH) + 1) + "-"+ (ca.get(Calendar.DAY_OF_MONTH));The……
      

  3.   

    new Date() 是通过System.currentTimeMillis()取系统当前时间,自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。
    new Date(long date):date 是 自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。这个是跟时区没有关系的;只有转具体时区时才会因时区不同显示时间不同。java默认是GMT+0为标准时区,而格林威治标准时(GMT)和世界时(UT)是相等的,下面测试:import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.TimeZone;public class TimeDemo { public static void main(String[] args) {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    long utc = new Date().getTime();

    TimeZone zone = TimeZone.getTimeZone("GMT+8");
    System.out.println(utcToTimeZoneDate(utc, zone, format));

    zone = TimeZone.getTimeZone("GMT+3");
    System.out.println(utcToTimeZoneDate(utc, zone, format));

    zone = TimeZone.getTimeZone("GMT+0");
    System.out.println(utcToTimeZoneDate(utc, zone, format));

    zone = TimeZone.getTimeZone("GMT-4");
    System.out.println(utcToTimeZoneDate(utc, zone, format));

    zone = TimeZone.getTimeZone("GMT-9");
    System.out.println(utcToTimeZoneDate(utc, zone, format));

    } public static String utcToTimeZoneDate(long date, TimeZone timeZone, DateFormat format){
    Date dateTemp = new Date(date);
    format.setTimeZone(timeZone);
    return format.format(dateTemp);
    }
    }
      

  4.   


    谢谢你的代码``让我学习了不少.....我的目的是吧1301497561L这样的UTC时间转换成正常的时间格式...
      

  5.   

    楼主的意思是否是 怎样把long转换成Date 这意思不?
    我开始理解是要把UTC转换成所在时区时间.
    如果是 把long转换成Date 就把这行:
    long utc = new Date().getTime();
    换成:
    long utc = 1301497561L;
    不久得到了正常的时间显示格式。
      

  6.   

            Long l = 1301497561L;
        Date d = new Date(new Long(l*1000));
        System.out.println(new Date(new Long(l*1000)).toLocaleString());
        d.setHours(d.getHours()-8);
        System.out.println(d.toLocaleString());你这个是错误的,d.setHours(d.getHours()-8);不能把8给写死了,因为在中国本地时间比UTC时间快8个小时,那么在美国呢?在印尼呢?这个8应该是根据所在时区来定的。