Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java格式带T字符的特定日期_Java_Date_Date Format_Simpledateformat - Fatal编程技术网

java格式带T字符的特定日期

java格式带T字符的特定日期,java,date,date-format,simpledateformat,Java,Date,Date Format,Simpledateformat,解析此日期的正确格式是什么?:2015-05-29T00:00:00+02:00 DateFormat format = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss"); Date data = format.parse(dataValue); 试一试 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); 注意 MM表示月份,MM表示分钟 如果您想使用

解析此日期的正确格式是什么?:
2015-05-29T00:00:00+02:00

DateFormat format = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss");
Date data = format.parse(dataValue);
试一试

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
注意

  • MM
    表示月份,
    MM
    表示分钟
  • 如果您想使用24小时格式,请使用
    HH
    HH
    用于12小时格式
  • XXX
    表示时区,格式类似于
    -08:00
  • 要在格式中添加类似于
    T
    的文字,需要用单引号将其括起来
    '
    类似于
    'T'
java.time 旧式日期时间API(
java.util
date-time类型及其格式化API,
SimpleDateFormat
)已过时且容易出错。建议完全停止使用它,并切换到
java.time
,即*

由于现代日期时间API基于标准,因此不需要显式使用
DateTimeFormatter
对象来解析符合ISO 8601标准的日期时间字符串。您的日期时间字符串包含时区偏移字符串(
+02:00
),因此,用于解析它的最合适类型是

演示:

import java.time.OffsetDateTime;

public class Main {
    public static void main(String args[]) {
        OffsetDateTime odt = OffsetDateTime.parse("2015-05-29T00:00:00+02:00");
        System.out.println(odt);
    }
}
2015-05-29T00:00+02:00
输出:

import java.time.OffsetDateTime;

public class Main {
    public static void main(String args[]) {
        OffsetDateTime odt = OffsetDateTime.parse("2015-05-29T00:00:00+02:00");
        System.out.println(odt);
    }
}
2015-05-29T00:00+02:00
无论出于何种原因,如果您需要
OffsetDateTime
对象中的
java.util.Date
实例,您可以按如下操作:

Date date = Date.from(odt.toInstant());
了解有关*的更多信息


*无论出于何种原因,如果您必须坚持使用Java6或Java7,您可以使用哪个backport将大部分Java.time功能移植到Java6&7。如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查并确认。

谢谢它的工作原理,我可以问你我如何更改“yyyy-MM-dd”中的格式输出吗?如果你有格式为字符串的数据
yyy-MM-dd'T'HH:MM:ssXXX
并且你想将其转换为格式
yyyy-MM-dd
它们,我会说最简单的方法是使用子字符串来选择这个
yyyyy-MM-dd
部分。但如果您想将其转换为类似于
dd/MM/yyyy
的格式,那么您需要创建另一个日期格式化程序,只需将原始格式化程序返回的日期格式化即可。因此,您的代码可以类似于
String newFormat=newFormatter.format(oldFormatter.parse(stringDate))