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

如何将时间戳从yyyy-MM-ddThh:mm:ss:SSSZ格式转换为MM / dd / yyyy hh:mm:ss.SSS格式?从ISO8601到UTC

潘泰
2023-03-14
问题内容

我想将时间戳2011-03-10T11:54:30.207Z转换为10/03/2011
11:54:30.207。我怎样才能做到这一点?我想将ISO8601格式转换为UTC,然后UTC应该可以识别位置。请帮忙

String str_date="2011-03-10T11:54:30.207Z";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");
date = (Date)formatter.parse(str_date);
System.out.println("output: " +date );

异常:java.text.ParseException:无法解析的日期:“ 2011-03-10T11:54:30.207Z”


问题答案:

首先,您需要意识到,UTC实际上不是时区,而是时区。因此,“从ISO8601转换为UTC”作为一个概念并没有任何意义。

但是,这是一个使用Joda Time的示例程序,该程序将文本解析为a DateTime,然后对其进行格式化。我猜想您可能要使用 一种 格式-
您实际上没有提供足够的信息来说明您想做的事情,而不是说更多。您可能还需要考虑时区…是否要显示指定时刻的 当地时间
?如果是这样,则需要计算出用户的时区并进行适当的转换。

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {
    public static void main(String[] args) {
        String text = "2011-03-10T11:54:30.207Z";
        DateTimeFormatter parser = ISODateTimeFormat.dateTime();
        DateTime dt = parser.parseDateTime(text);

        DateTimeFormatter formatter = DateTimeFormat.mediumDateTime();
        System.out.println(formatter.print(dt));
    }
}


 类似资料:
  • 问题内容: 我有一个格式。我希望它采用以下格式 以下是我尝试进行此转换的示例: 我得到的输出仍然不是格式。 请让我知道如何格式化从到 问题答案: 是自Unix纪元(1970年1月1日UTC:00:00)以来的毫秒数的容器。 它没有格式的概念。 输出…

  • 我有一个格式为。我希望它的格式为 下面是我尝试进行此转换的示例util: 但是,我得到的输出不是格式。 请告诉我如何将从格式化为

  • 问题内容: 我有一个名为的表,还有一个名为的列,ID的数据如下所示: IN_Date的数据类型为varchar(50)。 我正在尝试将IN_Date转换为mm / dd / yyyy格式。我尝试这样做: 但是格式仍然没有改变。谁能告诉我我要去哪里错了 问题答案: 您需要先进行转换才能将数据固定(正确的数据类型), 然后再 格式化…

  • 问题内容: 例如,我正在尝试将2008-09-26T01:51:42.000Z转换为2008年9月26日。完成此操作的最简单方法是什么? 问题答案: 最简单的方法是使用dateutil .parser.parse()将日期字符串解析为可识别时区的datetime对象,然后使用strftime()获得所需的格式。

  • 我从格式为yyyy-mm-dd(加上不需要的hh-mm-ss)的API中获取日期结果。我想在jQuery中将其转换为dd-mm-yyyy格式,最简单/最快的方法是什么? 目前我正在使用:(对于返回的字符串yyyy-mm-dd): 但是好像有点啰嗦。

  • 问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的