小编Jod*_*hen的帖子

JodaTime - 如何获得UTC的当前时间

我想以UTC格式获取当前时间.到目前为止我所做的是(仅用于测试目的):

    DateTime dt = new DateTime();
    DateTimeZone tz = DateTimeZone.getDefault();
    LocalDateTime nowLocal = new LocalDateTime();
    DateTime nowUTC = nowLocal.toDateTime(DateTimeZone.UTC);

    Date d1 = nowLocal.toDate();
    Date d2 = nowUTC.toDate();

    L.d("tz: " + tz.toString());
    L.d("local: " + d1.toString());
    L.d("utc: " + d2.toString());
Run Code Online (Sandbox Code Playgroud)
  • d1 是我当地的时间,没关系
  • d2 是我当地时间+ 1,但应该是当地时间 - 1 ...

我的本地时区是UTC + 1(根据调试输出和列表:https://www.joda.org/joda-time/timezones.html)...

如何正确地从一个时区转换为另一个时区(包括毫秒表示)?

编辑

我需要日期/毫秒...这不是关于正确显示时间....

编辑2

现在,在评论和答案的帮助下,我尝试了以下内容:

    DateTimeZone tz = DateTimeZone.getDefault();
    DateTime nowLocal = new DateTime();
    LocalDateTime nowUTC = nowLocal.withZone(DateTimeZone.UTC).toLocalDateTime();
    DateTime nowUTC2 = nowLocal.withZone(DateTimeZone.UTC);

    Date dLocal = nowLocal.toDate(); …
Run Code Online (Sandbox Code Playgroud)

java jodatime

24
推荐指数
3
解决办法
5万
查看次数

在java.time中,如何计算添加月份的结果?

java.timeJDK 8中的JSR-310 API中,计算将日期添加到日期的结果的规则是什么.特别是,当您将1个月添加到1月31日这样的日期时会发生什么?

LocalDate initial = LocalDate.of(2012, 1, 31);  // 31st January 2012
LocalDate result = initial.plusMonths(1);
// what is the result?
Run Code Online (Sandbox Code Playgroud)

java datetime java-8 java-time

22
推荐指数
1
解决办法
8082
查看次数

如何使用Java中的Joda日期/时间库获取"今天"的日期/时间范围?

假设这是你如何获得Joda时间的当前时间:

DateTime now = new DateTime();
Run Code Online (Sandbox Code Playgroud)

如何计算变量的值dateTimeAtStartOfTodaydateTimeAtEndOfToday

我正在试图做的是产生一些SQL做的有间发生的所有交易记录的查询startOfTodayendOfToday.

java datetime jodatime

21
推荐指数
2
解决办法
3万
查看次数

我应该使用threeten而不是joda-time

我遇到了https://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html.

1)我目前正在将Java Calendar迁移到joda-time.我想知道,我应该使用threeten而不是joda-time吗?三生产准备好了吗?

2)三个库和joda-time库可以在同一个应用程序中一起存在吗?因为我正在使用一些使用joda-time库的第三方库.

3)joda-time会不会成为一个放弃项目,因为有三个?

java jodatime jsr310

20
推荐指数
2
解决办法
3679
查看次数

java.lang.AbstractMethodError:org.joda.time.contrib.hibernate.PersistentDateTime.nullSafeGet

我正在尝试使用Joda-Time - 2.1和Hibernate 4.2.0.CR1.我在一些实体类中有一些日期时间字段,比如

@Column(name = "DISCOUNT_START_DATE")
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
private DateTime discountStartDate;
Run Code Online (Sandbox Code Playgroud)

注释Type是一种类型org.hibernate.annotations.Type.我有这个以下例外.

java.lang.AbstractMethodError: org.joda.time.contrib.hibernate.PersistentDateTime.nullSafeGet(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:127)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:106)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2903)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1668)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1600)
at org.hibernate.loader.Loader.getRow(Loader.java:1500)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:712)
at org.hibernate.loader.Loader.processResultSet(Loader.java:940)
at org.hibernate.loader.Loader.doQuery(Loader.java:910)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)
at org.hibernate.loader.Loader.doList(Loader.java:2516)
at org.hibernate.loader.Loader.doList(Loader.java:2502)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2332)
at org.hibernate.loader.Loader.list(Loader.java:2327)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1246)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
at dao.DiscountDAO.getList(DiscountDAO.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at …
Run Code Online (Sandbox Code Playgroud)

hibernate jodatime

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

为什么Joda DateTimeFormatter无法解析时区名称('z')

来自DateTimeFormatter javadoc:

区域名称:无法解析时区名称('z').

因此时区解析如下:

System.out.println(new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse("Fri Nov 11 12:13:14 JST 2010"));
Run Code Online (Sandbox Code Playgroud)

在Joda无法做到:

DateTimeFormatter dtf = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss z yyyy");
System.out.println(dtf.parseDateTime("Fri Nov 11 12:13:14 JST 2010"));
//Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "Fri Nov 11 12:13:14 JST 2010" is malformed at "JST 2010"
//at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:673)
Run Code Online (Sandbox Code Playgroud)

java jodatime

18
推荐指数
2
解决办法
9854
查看次数

理解JodaTime DateTime.parse(string,formatter)

DateTime类的parse方法中格式化程序的样式是否必须与字符串的确切样式匹配?例如,我从数据库(Oracle)获取TimeStamp对象并将其转换为字符串.在数据库中,TimeStamp就像这样存储

08-AUG-12 12.00.00.000000000 AM

我将格式化程序设置为此样式

String pattern = "dd-MMM-yy";
Run Code Online (Sandbox Code Playgroud)

我得到了这个例外

java.lang.IllegalArgumentException: Invalid format: "08-AUG-12 12.00.00 AM" is malformed at " 12.00.00 AM"

org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:866)

org.joda.time.DateTime.parse(DateTime.java:144)
Run Code Online (Sandbox Code Playgroud)

这究竟是什么意思,我将如何解决它?当我设置我的格式化程序时, "yy-MMM-dd hh.mm.ss aa"我没有得到异常,但它在浏览器中打印如下: 2008-08-12T00:00:00.000-04:00,但我需要将其打印为"dd-MMM-yy hh:mm:ss aa"

java formatting datetime jodatime

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

如何在Java DateUtils.parseDate中识别Zulu时区?

我有格式的日期2008-12-23T00:00:00Z.这看起来很像带有祖鲁(UTC)时区的ISO 8601格式.我虽然以下代码将解析它(使用commons-lang):

String pattern = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern();
Date d = DateUtils.parseDate(dateToParse, new String[] { pattern });
Run Code Online (Sandbox Code Playgroud)

如果我采用相同的模式(yyyy-MM-dd'T'HH:mm:ssZZ)但删除时区,它的工作原理.

你知道我如何识别祖鲁时区吗?我只能访问Java 1.4和Jakarta commons-lang.没有Joda时间对我来说......

java timezone parsing date

16
推荐指数
2
解决办法
3万
查看次数

使用JPA2/Hibernate保留java.time.Instant(JDK8)

JPA和Hibernate目前都不支持JSR-310在JDK8中带来的新日期/时间类(JPA 票证,Hibernate 票证).尽管如此,我想用JDK8日期/时间类进行编码,因为它们最终设计得很好.特别是,我感兴趣java.time.Instant,并不是完全支持所有java.time.*类型,因为我的所有实体都将使用这个特定的类(或者我现在想,至少:-)

一种选择是编写类型转换器,如JPA 2.1所定义.但是,我们的应用服务器是JBoss EAP 6.3,它是JPA 2.0但不兼容2.1,所以现在这是不可能的.

下一个选项是使用Hibernate用户类型(关于在此处转换其他JSR-310类的博客文章).

有更好的选择吗?谢谢.

hibernate jpa jpa-2.0 java-8 java-time

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

将java.time转换为Calendar

Calendarjava.time.Instant或获取对象的最简单方法是java.time.ZonedDateTime什么?

java java-time

16
推荐指数
1
解决办法
8384
查看次数