当前位置: 首页 > 面试题库 >

Java中的日期TimeZone转换?

段渊
2023-03-14
问题内容

我一直在寻找将日期从格林尼治标准时间转换为本地时间的最简单方法。当然,要考虑适当的夏令时日期并尽可能地采用标准日期。

我能想到的最直接的代码是:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String inpt = "2011-23-03 16:40:44";
Date inptdate = null;
try {
    inptdate = sdf.parse(inpt);
} catch (ParseException e) {e.printStackTrace();}   
Calendar tgmt = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
tgmt.setTime(inptdate);

Calendar tmad = new GregorianCalendar(TimeZone.getTimeZone("Europe/Madrid"));
tmad.setTime(inptdate);

System.out.println("GMT:\t\t" + sdf.format(tgmt.getTime()));
System.out.println("Europe/Madrid:\t" + sdf.format(tmad.getTime()));

但是我认为我对返回的结果没有正确的概念getTime


问题答案:

这里的问题是DateFormat类具有时区。请尝试以下示例:

    SimpleDateFormat sdfgmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdfgmt.setTimeZone(TimeZone.getTimeZone("GMT"));

    SimpleDateFormat sdfmad = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdfmad.setTimeZone(TimeZone.getTimeZone("Europe/Madrid"));

    String inpt = "2011-23-03 16:40:44";
    Date inptdate = null;
    try {
        inptdate = sdfgmt.parse(inpt);
    } catch (ParseException e) {e.printStackTrace();}

    System.out.println("GMT:\t\t" + sdfgmt.format(inptdate));
    System.out.println("Europe/Madrid:\t" + sdfmad.format(inptdate));


 类似资料:
  • 问题内容: 我的json 响应 包含一个 CreatedOn 日期: 我需要将 CreatedOn 转换为简单的日期格式,并 计算从CreatedOn日期到当前日期的差异天数。 当我调试下面的代码字符串 CreatedOn时 显示一个空值。怎么会? 问题答案: 要么 考虑使用JSON方法而不是包含。JSON具有“ has()”,用于验证密钥是否存在。 您还应该确保首先尝试{}捕获{}字符串,以确保

  • 问题内容: 我有以下的int变量。如何将其转换为Date对象,反之亦然。 问题答案: 将值转换为a 并用于将其解析为一个对象: 反之相似,但是不是使用,而是将结果从转换为: 一种替代方法是使用并手动解析您的eger 的表示形式,尽管我 强烈建议您 这样做:

  • 问题内容: 我需要转换为搜索的内容,但找不到任何内容。那你可以帮我解决这个问题吗? 编辑: 我在GWT屏幕上执行此转换过程。我在屏幕上,使用它的方法可以给我带来价值。因此,我应该将此值放入具有Date类型的对象的属性中。 希望我的编辑会更加清晰。 编辑2: 这行是我的问题的解决方案: 问题答案: 日期转换的最佳方法是使用以毫秒为单位的时间(UTC)。JS Date对象和java.util.Date

  • 我需要创建一个方法以两种格式接收日期: > 2022-05-27(基本日期) 我的代码: 对简单日期格式抛出异常: java.time.format.DateTimeParseException:文本'2022-05-27'无法解析在索引10在java.base/java.time.format.DateTimeFormatter.parseResolved0(未知来源)在java.base/ja

  • 问题内容: 我想知道如何将转换到在Struts2。我有一个简单的表格,其中用户以这种格式提供日期。提交后,将Sturts2映射表单发送到Bean。我在日期转换中出错。我在很多地方都使用Google进行搜索,并指出必须为此使用自定义类型转换器。我不想编写用于日期转换的自定义类型转换器。我认为Struts2中应该有一种简单的数据转换机制,因为数据转换是非常常见的功能。 JSP 这是用户输入输入的JSP

  • 我想创建一个“yyyy-mm-dd hh:mm:ss”格式的日期对象。下面是我正在使用的代码。解析字符串后形成的日期对象不是所需的格式(预期为:2020-04-04 00:00:00,但实际为:Sat Apr 04 00:00:00 CDT 2020)。如何将日期转换为所需格式