这个是UTC时间...我想转换成正常时间..utc=1301497561;(都是数字)正常时间
2011-03-30 15:10:00大概就是在15点十几分左右....
System.out.println(new Date(new Long(utc*1000)).toLocaleString());我是这么转换的.不对....也是从csdn看的嘛大家帮我想想主意吧.
2011-03-30 15:10:00大概就是在15点十几分左右....
System.out.println(new Date(new Long(utc*1000)).toLocaleString());我是这么转换的.不对....也是从csdn看的嘛大家帮我想想主意吧.
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
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……
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);
}
}
谢谢你的代码``让我学习了不少.....我的目的是吧1301497561L这样的UTC时间转换成正常的时间格式...
我开始理解是要把UTC转换成所在时区时间.
如果是 把long转换成Date 就把这行:
long utc = new Date().getTime();
换成:
long utc = 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应该是根据所在时区来定的。