我正在使用以下时间戳格式:
yyyyMMddHHmmssSSS
以下方法可以正常工作:
public static String formatTimestamp(final Timestamp timestamp, final String format) {
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return timestamp.toLocalDateTime().format(formatter);
}
而且,当我使用该格式字符串传递时间戳时,它返回,例如:
20170925142051591
然后,我需要再次从该字符串映射到时间戳,本质上是相反的操作。我知道我可以使用SimpleDateFormat
和及其parse()
方法,但是java.time
如果可能的话,我宁愿坚持使用样式格式。
我写了这段代码(相当hacky),它适用于某些格式,但不适用于特定格式:
public static Timestamp getTimestamp(final String text, final String format, final boolean includeTime) {
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
final TemporalAccessor temporalAccessor = formatter.parse(text);
if (includeTime) {
final LocalDateTime localDateTime = LocalDateTime.from(temporalAccessor);
return DateTimeUtil.getTimestamp(localDateTime);
} else {
final LocalDate localDate = LocalDate.from(temporalAccessor);
return DateTimeUtil.getTimestamp(localDate);
}
}
在第二formatter.parse(text);
部分,它失败了。
堆栈跟踪:
java.time.format.DateTimeParseException: Text '20170925142051591' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
at java.time.LocalDateTime.parse(LocalDateTime.java:477)
at com.csa.core.DateTimeUtil.main(DateTimeUtil.java:169)
有没有一种更简单的方法可以在不利用我的情况下实现我想要的SimpleDateFormat
?
这是一个错误:https :
//bugs.openjdk.java.net/browse/JDK-8031085
上面的链接还提供了解决方法:在毫秒字段中使用java.time.format.DateTimeFormatterBuilder
带有a
java.time.temporal.ChronoField
的:
String text = "20170925142051591";
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
// date/time
.appendPattern("yyyyMMddHHmmss")
// milliseconds
.appendValue(ChronoField.MILLI_OF_SECOND, 3)
// create formatter
.toFormatter();
// now it works
formatter.parse(text);
不幸的是,似乎没有办法使用only来解析它DateTimeFormatter.ofPattern(String)
。
我还更新了相关的XML文件,其中提到了spring security bean。我在用Postgres数据库。而且,在我的系统中,一切都运行良好,当我将这些更改提交到QA环境时,登录不工作。我在登录到应用程序时检查了日志,它显示了一些错误。这是日志 还有,如何检查ubuntu服务器中的PostgreSQL JDBC驱动程序版本?有人能帮我解决这个问题吗?谢谢
问题内容: 启动Java应用程序时,尝试保存图像时出现异常。但是,在Eclipse中,一切正常。该应用程序是使用fatjar构建的,并且还选择了必需的库(jar_imageio.jar和ij.jar)进行导出。 我尝试使用ImageIO和ImageJ: a。)ImageIO: b。)ImageJ: 问题答案: 正如@Victor说的,我认为您应该看看 我昨天才遇到这个问题,这很棘手。有类似的问题在
问题内容: 试图通过类强制转换异常在这里: 抛出此异常: 我不明白这一点-因为该类是由xjc.bat工具生成的-并且它生成的类我完全没有改变-所以这里应该没有强制转换问题- 解组员应该真的给了我一个类可以强制转换为FooClass。 关于我在做什么错的任何想法吗? 问题答案: 是否有注释?如果没有,请尝试: 这基于非官方的JAXB指南。
我正在尝试使用Spark connector for Azure SQL Databases library(GitHub)从Spark获取数据并将其批量插入Azure数据库。我试图使用“ActiveDirectoryPassword”作为身份验证方法,但adal4j总是抛出一个声明javax的AuthenticationException异常。邮政互联网已引发ParseException。 我正
问题内容: 我正在尝试使用java解析JSON字符串。我不知道该怎么做,我在互联网上搜索了很多内容,但有了一些主意。有了我,我有构建代码,但它不起作用。当尝试执行我的代码时,它将引发错误。我无法解决错误。 看到下面是我的代码: 我的JSON字符串在该文件中: 当我执行代码时,它会引发如下错误: 请帮助我解决这个问题,在此先感谢 问题答案: 您的json在Java中解析错误。在Java中,最大值为
这是我第一次处理SSLSockets, 谢谢你, 编辑1:我启用了调试,这是调试: