我有一个非常特殊的问题,我试图在哪里解析"2019-12-25T17:00:00-05:00"
,以便它可以给我结果DEC 12 | Thursday | 5:00pm
我通过使用DateTimeFormatter
和尝试了以下代码LocalDate
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssz", Locale.US);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("MM d | E | hh:mm a", Locale.US);
LocalDate date = LocalDate.parse("2019-12-25T17:00:00-05:00", inputFormatter);
String formattedDate = outputFormatter.format(date);
contentTextView.setText(formattedDate);
但是它崩溃了 DateTimeParseException: Text '2019-12-25T17:00:00-05:00' could not be parsed at index 19
知道为什么会崩溃以及我的输出是否可以提供预期的结果吗?谢谢!
您的String 2019-12-25T17:00:00-05:00
表示UTC
带有偏移UTC
offset的
时区,因此OffsetDateTime
用于解析该字符串
OffsetDateTime odt = OffsetDateTime.parse("2019-12-25T17:00:00-05:00");
System.out.println(odt.format(DateTimeFormatter.ofPattern("MMM d | E | hh:mm a", Locale.US)));
如果您想设置特定的时区,可以使用atZoneSameInstant
传递ZoneId
eaxmple
ZoneId zone = ZoneId.of("America/Chicago");
ZonedDateTime zdt = odt.atZoneSameInstant(zone);
我正在将字符串类型的日期解析成日期格式,但每次都出现了这个异常 我的代码是:
问题内容: 给定以下字符串:如何将其转换为对象? 阅读后,我觉得这应该可以,但是不行。 应该注意的是,这没有问题: 但是我坚持下去。我宁愿完全转换它,而不以任何方式更改(或切片)它。 问题答案: 看起来strptime并不总是支持。Python似乎只是调用C函数,而您平台上不支持strptime 。 注意: 从Python 3.2开始,它将始终有效。
问题内容: 我有一个字符串,我正在尝试将其解析为一个数字。我尝试使用,结果为2。我猜逗号是问题所在,但我将如何以正确的方式解决此问题?只需删除逗号? 问题答案: 是的,删除逗号:
问题内容: 如何将下面的日期字符串解析为一个Date对象? 引发异常… 问题答案: 模式是错误的。您有3个字母的天的缩写,因此必须为。您有3个字母的月份缩写,因此必须为。由于这些日和月的缩写对语言环境敏感,因此您也希望将语言环境明确指定为英语,否则它将使用平台默认语言环境,而语言环境本身可能不是英语。 这在这里打印 根据我的时区是正确的。 如果您不想使用代替,我也会重新考虑。阅读javadoc以获
问题内容: 我有这样的日期和时间的字符串:。我对日期/时间格式了解不多,但是我认为,如果我错了,请纠正我,这就是它的UTC格式。 我的问题:用Java将其解析为更常规格式的最简单方法是什么? 问题答案: 您拥有的是ISO-8601日期格式,这意味着您可以只使用SimpleDateFormat 然后,您可以只使用SimpleDateFormat.parse()。另外,这是一篇博客文章,其中包含一些可
问题内容: 该java.util.Date 方法显示当地时区的日期。 在几种常见的情况下,我们希望以UTC格式打印数据,包括日志,数据导出以及与外部程序的通信。 在UTC中创建String表示形式的最佳方法是什么? 如何用更好的格式替换无法排序的juDate 格式(感谢@JonSkeet!)? 附录 我认为以自定义格式和时区打印日期的标准方法非常繁琐: 我一直在寻找像这样的单线: 问题答案: 遵循