Calendar cl = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"));
cl.setTimeInMillis(time);
Toast.makeText(getActivity(), cl.getTime().toString(), Toast.LENGTH_LONG).show();不管我说什么,它总是会在EST中返回时间。我想让它回到PST的时间。有人知道这肯定是错的吗?
附注:
我的当地时间是东部时间。
发布于 2013-11-05 16:16:52
试试这个:
TimeZone.setDefault(TimeZone.getTimeZone("PST"));
Calendar cl = Calendar.getInstance();发布于 2013-11-05 16:41:22
这并不是一个真正的答案,但它太大了,不能发表评论。这就是我发现的。
我的测试是这样的
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
Calendar cl = Calendar.getInstance(tz);
System.out.println(tz.getDisplayName());
String dayname = cl.getDisplayName(Calendar.DAY_OF_WEEK,Calendar.SHORT,Locale.US);
String monthname = cl.getDisplayName(Calendar.MONTH,Calendar.SHORT,Locale.US);
int hour = cl.get(Calendar.HOUR);
int min = cl.get(Calendar.MINUTE);
int sec = cl.get(Calendar.SECOND);
int mill = cl.get(Calendar.MILLISECOND);
int year = cl.get(Calendar.YEAR);
System.out.println("Time = " + cl.getTime().toString());
System.out.println("Manually = " +
dayname + " " + monthname + " " +
hour + ":" + min +":" + sec + ":" + mill + " " +
cl.getTimeZone().getDisplayName(Locale.US) + " " + year);给出了输出
Pacific Standard Time
Time = Tue Nov 05 11:36:33 EST 2013
Manually = Tue Nov 8:36:33:238 Pacific Standard Time 2013看着Calendar.getTime()
public final Date getTime() {
return new Date(getTimeInMillis());
}跟着弹跳球..。
public long getTimeInMillis() {
if (!isTimeSet) {
updateTime();
}
return time;
}
private void updateTime() {
computeTime();
// The areFieldsSet and areAllFieldsSet values are no longer
// controlled here (as of 1.5).
isTimeSet = true;
}但是我没有computTime()的来源,所以我在这里停了下来。
加布里埃尔的回答管用,fwiw。
发布于 2013-11-05 16:22:02
Calendar.getTime()返回一个java 日期实例,该实例表示从1970年1月1日00:00:00格林尼治标准时间开始的毫秒数。在Date实例上调用toString()将根据服务器上配置的时区打印日期。要正确格式化另一个时区中的输出日期,您需要查看如何使用日期格式化程序。
TimeZone est = TimeZone.getTimeZone("America/New_York");
Calendar cal = Calendar.getInstance(est);
DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
formatter.setTimeZone(est);
System.out.println(formatter.format(cal.getTime())); https://stackoverflow.com/questions/19792632
复制相似问题