我需要创建一个方法以两种格式接收日期:
>
2022-05-27(基本日期)
我的代码:
private static final String DATE_TIME_FORMAT = "dd-MM-yyyy HH:mm";
private String getFormattedDateTime(String date){
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern(DATE_TIME_FORMAT).withZone(ZoneId.of("UTC"));
Instant instant = DateTimeFormatter.ISO_INSTANT.parse(date, Instant::from);
return formatter.format(instant);
}
对简单日期格式抛出异常:
java.time.format.DateTimeParseException:文本'2022-05-27'无法解析在索引10在java.base/java.time.format.DateTimeFormatter.parseResolved0(未知来源)在java.base/java.time.format.DateTimeFormatter.parse(未知来源)
我的代码目前适用于ISO。检查日期是否为ISO的最佳方法是什么?
实现这一点的方法是首先尝试准确描述您接受的格式:在您的情况下,它不是ISO\U即时,而是带有可选UTC时间部分的日期部分。因此,请使用该格式创建一个格式化程序,然后使用parseBest:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd['T'HH:mm:ss.SSSVV]");
TemporalAccessor parsed = formatter.parseBest("2022-03-01", Instant::from, LocalDate::from);
Instant instant = parsed instanceof LocalDate d? d.atStartOfDay().toInstant(ZoneOffset.UTC) : (Instant) parsed;
System.out.println(instant);
这将接受您的任何一种格式的输入。
一种懒惰的方法是比较字符串长度。
private String getFormattedDateTime(String date){
DateTimeFormatter formatter = null;
if(date.lenght()>10)
// initialize formatter for '2022-05-27T17:38:00.000Z'
else
// initialize formatting for '2022-05-27'
//rest of your code
}
虽然ISO和基本日期都需要2个格式化程序。
问题内容: 如何从JSON.Net转换日期时间格式,例如: /日期(1154970000000 + 0700)/ 到ISO- ?? 格式2011-12-18T23:34:59Z 最好使用Python或Javascript。 Ive决定使用后者,因为它在JS世界中似乎是使用最广泛,人类可读且自然可排序的。我将按用户存储偏移量。 如果实现又有点问题,是否有人可以告诉我两种格式的正确名称,我可能会更不了
问题内容: 如何将时间转换为ISO 8601日期格式?(-_-;) 问题答案: 面向对象 这是推荐的方法。 程序 对于旧版本的PHP,或者您更熟悉过程代码。
我想把两次加在一起。国际标准化组织 有什么建议吗?
我有Excel数据,并尝试使用Talend Big data for Open Studio将数据插入MongoDB。这是我的工作, 在excel表单中,我有一个日期值列,格式为7/13/2017(MM/DD/YYYY)作为字符串类型,我正在尝试将该列值作为ISO格式ISODate(“2017-07-13T00:00:00.000Z”)插入MongoDB中。
问题内容: 我正在阅读XML文档(UTF-8),并最终使用ISO-8859-1在网页上显示内容。正如预期的那样,有几个字符显示不正确,比如,和(他们显示为?)。 是否可以将这些字符从UTF-8转换为ISO-8859-1? 这是我编写的尝试此功能的代码段: 我不太确定发生了什么问题,但是我认为是readLine()引起了麻烦(因为字符串将是Java / UTF-16编码的?)。我尝试的另一种变化
相反,我希望保持相同的日期和时间,如:Wed Sep 09 09:58:00,这样我就可以将这个日期对象分别转换为“yyyy-mm-dd”、“hh:mm:ss”和“yyyy-mm-dd't'hh:mm:ss”格式的字符串。