我有一个奇怪的问题,当我创建一个具有区域设置的日历时,TimeZone只是还原为本地日历
public void start(Locale locale){
String s = locale.getDisplayName();
System.err.println(s);
Calendar c = new GregorianCalendar(locale);
System.err.println(c.getTimeZone());
}
这是输出:
español (Argentina)
sun.util.calendar.ZoneInfo[id="Europe/Bucharest", //etc more useless date here....
如何从特定的语言环境中获取适当的时间?
简短的答案:您不能。
长话大说:没有“语言环境的正确时区”之类的东西。这仅仅是因为有些国家/地区具有多个时区(例如美国)。时区是一个不同的概念。
无论如何,您正在寻找解决问题的方法。我猜您正在编写Web应用程序,并且看到时区已恢复为服务器默认值。那是典型的情况。双方Locale.getDefault()
并TimeZone.getDefault()
会返回服务器的相关信息。JVM无法知道“适当的”时区。所以你对此能做些什么?
DateFormat
实例分配一个适当的对象,它将自动转换时区。在这三个可能的选择中,我始终选择数字1。通过将时区信息添加到用户个人资料中,您可以确定他/她的首选时区是什么,而不管其当前的Web浏览器是什么,等等。请记住一些用户可能想在访问其他国家时使用您的应用程序…
问题内容: 我正在从Web服务下载一些JSON数据。在此JSON中,我有一些日期/时间值。UTC中的所有内容。如何解析此日期字符串,使结果Date对象位于当前语言环境中? 例如:服务器返回“ 2011-05-18 16:35:01”,并且我的设备现在应显示“ 2011-05-18 18:35:01”(格林尼治标准时间+2) 我当前的代码: 问题答案: 它具有一个设置的时区方法: 全做完了!
问题内容: 如何使用Java获取当前日期和时间? 我正在寻找与C#等效的东西。 问题答案: 只需构造一个没有任何参数的新对象即可;这会将当前日期和时间分配给新对象。 在的话的Javadoc的无参数的构造函数: 分配一个Date对象并对其进行 初始化,以便它表示分配它的时间( 以最近的毫秒为单位)。 确保您使用的不是-后者没有零参数构造函数,并且语义有所不同,这是完全不同的对话的主题。:)
问题内容: 我是Java和Android开发的新手,所以这可能是一个愚蠢的问题,但是我已经搜寻了好几天,却找不到解决方案: 我尝试根据用户的语言环境输出a 。 在StackOverflow上搜索使我想到了这一点: 输出: 在我的法语本地电话上。差不多了 我如何也输出 小时,分钟和秒部分 的,使用用户的语言环境?我一直在寻找android文档,但找不到任何东西。 非常感谢。 问题答案: 用 参考:h
问题内容: 我遇到了一个非常奇怪的问题,听起来像是系统错误。我只想使用小时和分钟信息来格式化日期,并在必要时显示AM / PM。 这是我的代码: 如您所见,我正在使用而不使用,并且如Apple文档所述,如果用户选择12h格式,它应该自动添加AM / PM: 时间的表示可能是13:00。但是,在iOS中,如果用户将24小时制切换为关闭,则时间可能是1:00 pm。 我发现它可以在我的设备(我位于欧洲
问题内容: 我有一些用Go编写的代码,我正在尝试更新这些代码以使用最新的每周构建。(它最后一次在r60下构建)。现在,一切正常,除了以下几位: 关于如何更新它以与当前Go实施一起使用的任何建议? 问题答案: