有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将日期格式转换为Java日期

我从API中获得了以下日期格式(是的,我试图让他们更改API…dailywtf故事):

\/Date(1310481956000+0200)\/

如何将其转换为Java日期?(java.util.Date)

这来自一个。NET JSON web服务


共 (2) 个答案

  1. # 1 楼答案

    How can I convert this into a Java Date? (java.util.Date)

    首先,让“他们”清楚准确地告诉你日期格式的确切含义。(如果他们不愿意或不能,你可以猜;见下文。)

    接下来编写一个自定义解析器来解析字符串并提取信息内容

    最后,将信息内容转换为与Date构造函数之一匹配的表单,并创建一个实例


    我的猜测是1310481956000部分是自UNIX纪元(1970/01/01T00:00)以来的毫秒数,0200表示2小时的时区偏移(MET?)。然而,你不应该依靠猜测。让“他们”给你说明,或者至少一些例子,以及他们对应的实际时间/时区

  2. # 2 楼答案

    在不知道日期/时间字符串代表什么的情况下,让我猜一猜

    1310481956000看起来是历元之后的毫秒,+0200是相对于GMT的偏移量

    下面的代码似乎也表明了这一点:

    final TimeZone tz = TimeZone.getTimeZone("GMT+0200");
    final Calendar cal = Calendar.getInstance(tz);
    cal.setTimeInMillis(1310481956000L);
    final SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
    f.setTimeZone(tz);
    System.out.println(f.format(cal.getTime()));
    

    打印2011-07-12 16:45:56 GMT+02:00