java.time包,一个在Java 8中首次出现的现代日期时间框架,由JSR 310定义,取代了java.util.Date和.Calendar类。灵感来自Joda-Time,但重新设计。使用ISO 8601标准作为解析和生成字符串的默认值。包括表示仅限日期,仅限时间和时间跨度值的类。
我想在“dd.mm.yyyy”模式中格式化我的java8LocalDateTime对象。有库要格式化吗?我尝试了下面的代码,但得到了转换例外。 <fmt:parseDate value="${date}" pattern="yyyy-MM-dd" var="parsedDate" type="date" /> 在JSTL中是否有LocalDateTime类的标签或转换器? 这是14岁的JSTL中不存在的。 您最好的选择是创建自定义EL功能。首先创建一个实用程序方法。 package com.example; public final class Dates { private Dates() {} public static String formatLocalDateTime(LocalDateTime localDateTime, String pattern) { return localDateTime.format(DateTimeFormatter.ofPattern(pattern)); } } 创建一个/WEB-INF/functions.tld,其中您将实用程序方法注册为EL函数: <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.0</tlib-version> <short-name>Custom_Functions</short-name> <uri>http://example.com/functions</uri> <function> <name>formatLocalDateTime</name> <function-class>com.example.Dates</function-class> <function-signature>java.lang.String formatLocalDateTime(java.time.LocalDateTime, java.lang.String)</function-signature> </function> </taglib> 最终使用它如下: <%@taglib uri="http://example.com/functions" prefix="f" %> <p>Date is: ${f:formatLocalDateTime(date, 'dd.MM.yyyy')}</p> 在必要时扩展使用Locale参数的方法。 实际上,我遇到了相同的问题,最终将原始的Joda Time JSP标签划出了java 8 Java.Time JSP标签。 图书馆的示例将是这样的: <javatime:parseLocalDateTime value="${date}" pattern="yyyy-MM-dd" var="parsedDate" /> 检查存储库的安装说明:https://github.com/sargue/javatime-jsptags 没有,localdateTime不存在。 ,但是您可以使用: <fmt:parseDate value="${ cleanedDateTime }" pattern="yyyy-MM-dd'T'HH:mm" var="parsedDateTime" type="both" /> <fmt:formatDate pattern="dd.MM.yyyy HH:mm" value="${ parsedDateTime }" /> 我的解决方案是我的解决方案(我正在使用Spring MVC)。 在控制器中,添加了一个带有localdateTime模式作为模型属性的SimpleDateFormat: model.addAttribute("localDateTimeFormat", new SimpleDateFormat("yyyy-MM-dd'T'hh:mm")); 然后在JSP中使用它来解析localdatetime并获得java.util.date: ${localDateTimeFormat.parse(date)} 现在您可以用JSTL进行解析。 我建议使用java.time.format.DateTimeFormatter。 首先将其导入JSP<%@ page import="java.time.format.DateTimeFormatter" %>,然后将其格式化变量。 对于Java开发的新手,我感兴趣的是,这种方法在“最佳实践”方面是可以接受的。 感谢很多,您帮助我定义了自定义tld
ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JavaTimeModule()); mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); String now = new ObjectMapper().writeValueAsString(new SomeClass(LocalDateTime.now())); System.out.println(now);
java 8 dateTimeFormatter忽略毫秒和区域
DateTimeFormatter
android-确定本地时间是否在一组时间之间(包括过去的午夜和午夜之后)
目前,我正在尝试找出一定时间在启动时间1小时和终结时间之间。 目前我的代码是: if(localtimenow.isafter(startshift.minus(1,chronounit.hours))&& ...
如何将 UTC 时间转换为其他时区(“CST”、“IST”)
在我的Android应用程序服务器中,将以以下格式返回一些UTC日期(yyyy-MM-dd HH:mm:ss)24小时,我需要将这些时间转换为用户的时区,例如CST、IST。 我做了
我这里有一个问题要解决,但我不知道如何解决? 我必须这样做: ShowCurrentTime.java,给出一个显示当前时间的程序 在格林威治标准时间。修改程序,使其提示
我这里有一个问题要解决,但我不知道如何解决? 我必须这样做: ShowCurrentTime.java,给出一个显示当前时间的程序 在格林威治标准时间。修改程序,使其提示
我在使用 UTC 格式的 LocalDate 时遇到问题。 我的服务器使用 UTC,我的数据库也使用 UTC。 我使用 LocalDate 来存储基于订阅的应用程序的 billingDate。 发生的事情是......
我想弄清楚如何确定特定星期一是给定月份的第一、第二、第三还是第四个星期一。我已经弄清楚如何获取下周一和本周
我想弄清楚如何确定特定星期一是给定月份的第一、第二、第三还是第四个星期一。我已经弄清楚如何获取下周一和本周
如何获取接下来的n个星期五,即一个月中的第一个、第二个或第三个星期五?
我需要找到接下来的n个星期五,但想排除第四个和可能的第五个星期五,即我想得到接下来的n个星期五,即每个月的第一个、第二个或第三个星期五。我找到了一种直播方式...
如何格式化 java.time.Duration mm:ss
我有一个java.time.Duration,我想以mm:ss的形式输出它。似乎不可能使用 DateTimeFormatter 因为它只接受 LocalTime、ZonedTIme 等 所以我就这样做了,
我正在尝试格式化日期,格式为 05051988。我想在 1988 年 5 月 5 日使用 LocalDate 进行格式化。 我创建了私有方法,稍后我将在同一个类中使用它......
无法解析:无法从 TemporalAccessor 获取 OffsetDateTime
我有这个java代码: 导入 org.joda.time.format.DateTimeFormat; 导入 org.joda.time.format.DateTimeFormatter; 导入 java.util.Date; 日期时间格式化程序 DATE_TIME_FORMATTER = 日期时间...
我有这段代码:它的作用是将字符串转换为时间对象。 字符串时间=“288:30:18”; DateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 日期日期 = sdf.parse(时间); 主要
我正在使用下面的函数将微秒格式的时间字符串转换为 ZoneDateTime,以便稍后进行比较。 公共静态 ZonedDateTime createTimeFromString(String inputTime) {