小编Jod*_*hen的帖子

Joda-Money通过hibernate持久化

JodaTime有一个提供Hibernate持久性的库.最近我开始关注Joda-Money并开始看看如何使用hibernate持久保存,我没有看到任何库.

有什么建议?

java hibernate joda-money

12
推荐指数
3
解决办法
6093
查看次数

如何在JSP中将Java Date转换为Joda Time的ReadableInstant?

我实例化了一个在my中java.util.Date调用的对象myDate,controller并将其传递给我的JSP,我在页面顶部配置了一个Joda Time JSP标记:

<%@taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %>
Run Code Online (Sandbox Code Playgroud)

当然还有Maven通过POM文件添加到项目中的必要依赖项.

但是,当我尝试myDate从JSP 访问时,如下所示:

<joda:format value="${myDate}" style="SM" />
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

javax.servlet.jsp.JspException: 
value attribute of format tag must be a 
ReadableInstant or ReadablePartial, was: java.util.Date
Run Code Online (Sandbox Code Playgroud)

参考Joda Time JSP标签文档,我不知道我应该如何"转换"我myDate的这个ReadableInstantReadablePartial在这个JSP的上下文中?

java jsp date jodatime

11
推荐指数
1
解决办法
1万
查看次数

在JSR-310中查找下一个星期几的事件

鉴于JSR-310对象,例如LocalDate,我如何找到下周三(或任何其他星期几)的日期?

LocalDate today = LocalDate.now();
LocalDate nextWed = ???
Run Code Online (Sandbox Code Playgroud)

java datetime java-8 java-time

11
推荐指数
1
解决办法
1643
查看次数

Java 8日期/时间(JSR-310)类型与Spring Data MongoDB的映射

我有Java 8日期/时间字段的简单文档

@Document
public class Token {
    private Instant createdAt;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我希望坚持使用Spring Data MongoDB 1.5版.但是类型的字段java.time.Instant无法正确反序列化,因为MappingMongoConverter缺少java.time类的转换器.

在Spring 4中,我发现org.springframework.format.datetime.standard.DateTimeConverters了不同的Converters包括InstantToLongConverterLongToInstantConverter声明为私有静态类.

如何配置MongoTemplate使用它们将Instant字段映射到long?

java java-8 spring-data spring-data-mongodb java-time

11
推荐指数
1
解决办法
9556
查看次数

如何使用Java 8中的新Date-Time API获取当前小时?

在Java 8之前,常见的方法是CalendarAPI:

Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
Run Code Online (Sandbox Code Playgroud)

如何获取当前小时,但使用Java 8中提供的新Date-Time API

java java-8 java-time

11
推荐指数
1
解决办法
8210
查看次数

军事时区使用JSR 310(DateTime API)

我在我的应用程序中使用JSR 310 DateTime API*,我需要解析和格式化军事日期时间(称为DTG或"日期时间组").

我正在解析的格式如下(使用DateTimeFormatter):

"ddHHmm'Z' MMM yy" // (ie. "312359Z DEC 14", for new years eve 2014)
Run Code Online (Sandbox Code Playgroud)

如上所述,这种格式很容易解析.当日期包含与'Z'不同的时区(祖鲁时区,与UTC/GMT相同)时出现问题,例如'A'(Alpha,UTC + 1:00)或'B'(Bravo,UTC + 2:00).有关完整列表,请参阅军事时区.

我该如何解析这些时区?或者换句话说,除了文字"Z"之外,我还可以使用上面的格式来正确解析所有区域?我已经尝试使用"ddHHmmX MMM yy","ddHHmmZ MMM yy""ddHHmmVV MMM yy",但他们没有工作(一切都会抛出DateTimeParseException: Text '312359A DEC 14' could not be parsed at index 6了上面的例子中,在解析时).V不允许在格式中使用单个(IllegalArgumentException尝试实例化时DateTimeFormatter).

编辑:z如果不是下面的问题,似乎符号可能有效.

我还要提一下,我已经创建了一个ZoneRulesProvider包含所有命名区域和正确的偏移量.我已经验证使用SPI机制正确注册了这些,并且我的provideZoneIds()方法按预期调用.仍然不会解析.作为一个副问题(编辑:现在这似乎是主要问题),API不允许使用"Z"以外的单字符时区ID(或"区域").

例如:

ZoneId alpha = ZoneId.of("A"); // boom
Run Code Online (Sandbox Code Playgroud)

将抛出DateTimeException: Invalid zone: A(甚至没有访问我的规则提供程序,看它是否存在). …

java timezone datetime java-time

11
推荐指数
1
解决办法
1334
查看次数

Java中的闭包 - 三个主要建议之间的语法差异?

已经提出了向Java语言添加闭包的三个主要建议:

我的问题:

  • 在语法方面,三个提案(BGGA,CICE和FCM)之间有什么区别?

java closures bgga inner-classes java-7

10
推荐指数
2
解决办法
732
查看次数

Java 8中的新日期和时间API

这个页面上我读了以下内容:

要使用日期进行计算,这也很容易.与目前Java <1.8的情况相比,可能是最好的改进:

Period p = Period.of(2, HOURS);
LocalTime time = LocalTime.now();
LocalTime newTime = time.plus(p); // or time.plus(5, HOURS); or time.plusHours(5); 
Run Code Online (Sandbox Code Playgroud)

我没有清楚地看到版本<1.8之前的优势.

也许有人可以举个例子?Atm我问自己,新的日期和时间API的改进来自哪里.

java datetime java-8 java-time

10
推荐指数
1
解决办法
1万
查看次数

为什么Temporal不能在Java 8 jsr310中扩展Comparable

java.time.temporal.Temporal的文档包含以下注释:

实施要求:[...]所有实施必须是可比较的.

为什么Temporal不仅仅扩展可比性?

背景:我想使用类似的时间(不是像LocalDateTime等子类型),并且必须采用一种有点难以辨认的类型<T extends Temporal & Comparable<T>>,这也会混淆NetBeans的自动完成功能.

编辑:我想实现一个时间间隔.包含(Interval i),包含(Temporal t),重叠(...),adjoins(...)等的明显实现使用Comparable :: compareTo(Comparable c)来比较起点和终点,但是互操作性(toDuration(),parse(CharSequence cs))我需要例如Duration :: between(Temporal s,Temporal e)或SubtypeOfTemporal :: parse(CharSequence cs)(产生Temporal).

java java-8 java-time

10
推荐指数
3
解决办法
1527
查看次数

Instant.getEpochSecond与Instant.toEpochMilli背后的基本原理

有人可以解释一下Instant.getEpochSecondInstant.toEpochMilli命名背后的理由吗?我能想到的唯一原因是瞬间的内部表示为相对于纪元的秒数​​和相对于该秒的纳秒时间,而毫秒数是根据这两个值计算的.

但是为什么要让这样的实现细节泄漏到新的API中呢?

java java-time

10
推荐指数
1
解决办法
1462
查看次数