对于下面的代码,我得到了不同的输出
TimeZone t = TimeZone.getTimeZone("GMT-8"); // Also tried UTC-8 and GMT-8:00
//TimeZone t = TimeZone.getTimeZone("America/Los_Angeles");
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Date d = null;
Calendar c = Calendar.getInstance(t);
c.set(Calendar.MONTH, Calendar.AUGUST);
c.set(Calendar.DAY_OF_MONTH, 22);
c.set(Calendar.YEAR, 2013);
d = c.getTime();
String s = sdf.format(d);
System.out.println(s + " " + t.inDaylightTime(d));
输出为:
08/22/2013 false
现在美国/洛杉矶是GMT-8/UTC-8或PST。但当我将参数从GMT-8改为America/Los_Angeles时,
输出为:
08/22/2013 true
不能使用类似PST的缩写,因为它已被弃用。同时,CST可以指中央标准时间和中国标准时间。
我的输入是-8、-9-14等,我希望在GMT/UTC之前知道我是否可以在给定日期获得DST激活。
请在这方面指导我。
正如@iTech所解释的那样,结果是正确的。只需添加,您可以查找可用的时区ID,如下所示:
import java.util.TimeZone;
public class TimeZones {
public static void main(String[] args) {
String[] timezones = TimeZone.getAvailableIDs();
System.out.println(timezones.length);
for (String t : timezones) {
System.out.println(t);
}
}
}
这将打印一长串可用的600个时区。
然后,您可以获取缩写的显示名称,如下所示
System.out.println(TimeZone.getTimeZone("IST").getDisplayName());
结果是正确的,当您用偏移量指定GMT时,无法知道这是哪个国家/城市,因此无法确定白昼时间是否处于活动状态。
因此,对于使用GMT
和偏移量指定的所有时区,inDaylight Time()
将是false
。
在Java中,CST是中央标准时间,您可以通过这行代码进行检查:
System.out.println(TimeZone.getTimeZone("CST").getDisplayName());
中国标准时间
Java区域ID为CTT
编辑
考虑使用Joda time and date API获取更多最新的时区信息
想象一下下面的scanario:我有一个程序,它要求输入一个整数,然后是一个String输入。 根据aobe代码,我没有机会输入姓名。因此,通常我会声明2个扫描仪对象,如下所示: 我的问题是:有必要声明多个扫描仪对象来接受不同类型的输入吗??我这样做是正确的吗? 我已经考虑这个问题很多年了。(SO中的几个问题提到了多扫描仪,但他们的问题只使用了一个扫描仪对象,所以我今天问这个问题。)
问题内容: 我是android和java的初学者。我不明白什么时候对象传递。对象传递当然需要实现Serializable。 0.什么时候使用Serializable?它是什么? 1.什么是对象和捆绑类 2.使用Object和Bundle传递对象时 3.是否支持Object和Bundle对象都是数据类型的对象? 请帮助我。谢谢 问题答案: 您的要求确实很模糊,但是可序列化的对象可以转换为可以反序列化
我需要编写一个java方法来从一个对象中获取特定的信息。但是,该对象可以是A类型的,也可以是B类型的。下面是我的代码的一部分: 当我这样写它时,它会引发一个错误,说“重复方法”。我怎么才能让这个起作用?
我有一个这样的方法,它通常用于返回。 在最后一行,我从Pylance那里得到了以下信息: (方法)is_file:()- 有没有一种方法可以正确地键入提示这种情况,以便Pylance知道是?或者我应该让它总是返回路径,并有另一个方法调用将输出转换为字符串,然后返回? 谢谢 编辑1 我刚刚意识到另一个更常见的场景: 在熊猫中,输入参数可以改变输出类型,Pylance也不能处理这个问题。Pylance
下面,我有一个全局应用的日志回溯配置。 我想全局使日志记录级别错误,除了一个类。对于一个特定的类,我想使日志记录级别 INFO。我该怎么做?
而输出是 谁能详细说明一下1380605909318和61341428160000之间的区别?