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
用于12小时格式HH
表示时区,格式类似于XXX
-08:00
- 要在格式中添加类似于
的文字,需要用单引号将其括起来T
类似于'
'T'
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))
。