标签: jodatime

Joda DateTime到时间戳转换

我想在Joda中改变Timestampby 的值:DateTimeZone

  DateTime dt = new DateTime(rs.getTimestamp("anytimestampcolumn"),
                             DateTimeZone.forID("anytimezone"));
  Timestamp ts = new Timestamp(dt.getMillis());
Run Code Online (Sandbox Code Playgroud)
  • 因为DateTime,价值是:2013-04-13T22:56:27.000+03:00

  • 因为TimeStamp,价值是:2013-04-13 22:56:27.0

Timestamp 即将到来没有时区差异.

如何使用TimeZone获得正确的时间戳? 例如,我想得到"2013-05-13 01:56:27.0".

提前致谢.

编辑:使用MySQL,列类型TIMESTAMP当然rsResultSet.

java jodatime

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

在Java 8/jsr310中格式化持续时间

我正在将项目从Joda-Time过渡到java8的本地时间库,我遇到了麻烦.我一直无法找到持续时间的格式化程序.我想有一个自定义字符串格式,例如,HHH + MM,其中75小时和15分钟的持续时间格式为"75 + 15".通过转换为句点并使用PeriodFormatter,使用Joda-Time很容易,但我无法在Java8中找到这种类型的类.我错过了什么吗?

java duration jodatime java-8 java-time

37
推荐指数
4
解决办法
3万
查看次数

解析时间字符串,如"1h 30min"

任何人都知道Java库可以解析时间字符串,例如"30min"或"2h 15min"或"2d 15h 30min",作为毫秒(或某种Duration对象).Joda-Time可以这样做吗?

(我有一个丑陋的长方法来维护这种解析,并希望摆脱它/用更好的工作替换它.)

java time parsing jodatime

36
推荐指数
4
解决办法
2万
查看次数

杰克逊自动格式化Joda DateTime为ISO 8601格式

根据http://wiki.fasterxml.com/JacksonFAQDateHandling,"DateTime可以自动序列化/反序列化,类似于处理java.util.Date的方式."但是,我无法完成此自动功能.有关于此主题的StackOverflow讨论,但大多数涉及基于代码的解决方案,但基于上面的引用,我应该能够通过简单的配置来实现这一点.

根据http://wiki.fasterxml.com/JacksonFAQDateHandling我有我的配置集,以便将日期写为时间戳为false.结果是java.util.Date类型被序列化为ISO 8601格式,但org.joda.time.DateTime类型被序列化为长对象表示.

我的环境是这样的:

Jackson 2.1
Joda时间2.1
Spring 3.2
Java 1.6

我的jsonMapper bean的Spring配置是

@Bean
public ObjectMapper jsonMapper() {
    ObjectMapper objectMapper = new ObjectMapper();

    //Fully qualified path shows I am using latest enum
    ObjectMapper.configure(com.fasterxml.jackson.databind.SerializationFeature.
        WRITE_DATES_AS_TIMESTAMPS , false);

    return objectMapper;
}
Run Code Online (Sandbox Code Playgroud)

我的测试代码片段是这样的

Date d = new Date();
DateTime dt = new DateTime(d); //Joda time 
Map<String, Object> link = new LinkedHashMap<String, Object>();
link.put("date", d);
link.put("createdDateTime", dt);
Run Code Online (Sandbox Code Playgroud)

生成的JSON输出片段是这样的:

{"date":"2012-12-24T21:20:47.668+0000"}

{"createdDateTime": {"year":2012,"dayOfMonth":24,"dayOfWeek":1,"era":1,"dayOfYear":359,"centuryOfEra":20,"yearOfEra":2012,"yearOfCentury":12,"weekyear":2012,"monthOfYear":12 *... remainder snipped for brevity*}} …
Run Code Online (Sandbox Code Playgroud)

spring json jodatime jackson

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

是否有GSON Joda Time序列化程序的标准实现?

我正在使用GSON将一些对象图序列化为JSON.这些对象图使用约达时间的实体(DateTime,LocalTime等).

谷歌"gson joda"的热门歌曲是这个页面:

它为类型适配器提供源org.joda.time.DateTime.此链接也是GSON用户指南中引用的内容.

我希望找到一个包含joda-time序列化程序的预卷库,我可以将其作为Maven依赖项引用 - 但我找不到一个.

有吗?或者我被迫在我自己的项目中复制该片段?

java jodatime gson

36
推荐指数
4
解决办法
2万
查看次数

如何在Joda-Time获得正确的当前日期和时间?

如何在Joda Time获得正确的实际日期和时间?适当地,我指的是在我的国家的时间.我阅读了官方网页和一些教程 - 关于Locales和时区的内容很多,但我发现它很混乱.我没有找到任何例子如何简单地得到它.
我需要它有两件事:
1)在争论中获得最新信息
2)获得当前时间,我将与出生日期"比较"并计算年龄.
如何设置UTC + 1(布拉格 - 捷克共和国)时的当前时间?
谢谢

java time datetime date jodatime

34
推荐指数
2
解决办法
8万
查看次数

如何创建截断到最后一小时的新Joda DateTime?

我正在从我想要创建新DateTime的文件中提取时间戳,但我想在一小时的楼层创建DateTime(或者任何Joda Period会这样做).
我怎样才能做到这一点?

java datetime truncate jodatime floor

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

将日期字符串解析为某些Java对象

我正在一个读取文件和处理数据的项目中工作.我在那里工作日期例如:

  1. 2012-01-10 23:13:26
  2. 2012年1月13日

我找到了包Joda,有点有趣的包但不知道它是否是最容易的.

我能够将第一个示例解析为DateTime对象(Joda)reg-ex和String操作.(例如:用' - '替换空格并将其传递给构造函数.

new DateTime("2012-01-10 23:13:26".replace(' ', '-'))
Run Code Online (Sandbox Code Playgroud)

我猜它有用,但问题在于第二种格式.如何使用这样的输入来提取对象,最好是Joda对象.我确定可以编写一个函数来将格式更改为Joda支持的格式,但是想知道是否会有其他方式(甚至是一些本机Java库)来完成它.

如果有比Joda更好的东西,请告诉我.

谢谢.

java datetime jodatime date-parsing

33
推荐指数
4
解决办法
9万
查看次数

只有部分用户报告"未找到资源"错误.这有意义吗?

我看到针对我发布的Android应用程序的Crittercism(崩溃报告服务)出现了一些错误.跟踪如下:

0   java.io.IOException: Resource not found: "org/joda/time/tz/data/ZoneInfoMap" ClassLoader: dalvik.system.PathClassLoader@45908320
1    at org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:211)
2    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:123)
3    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:82)
4    at org.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:462)
5    at org.joda.time.DateTimeZone.setProvider0(DateTimeZone.java:416)
6    at org.joda.time.DateTimeZone.<clinit>(DateTimeZone.java:115)
7    at org.joda.time.chrono.GregorianChronology.<clinit>(GregorianChronology.java:71)
8    at org.joda.time.chrono.ISOChronology.<clinit>(ISOChronology.java:66)
9    at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:61)
10   at org.joda.time.DateTime.<init>(DateTime.java:155)
Run Code Online (Sandbox Code Playgroud)

搜索显示这通常是一个编译问题(通常是Joda时间库没有添加到构建路径或其他东西),但那么为什么只有大约4个用户看到这个错误?

我唯一的猜测是有人试图反编译应用程序盗版它(它是一个相当受欢迎的付费应用程序),并在错误地重新编译时看到这个错误.在那种情况下,我很高兴他们看到错误,我不需要担心这一点.

另一个奇怪的事情是导致问题的代码被try/catch包围,它似乎没有抓住它:

try {
    DateTime dt = new DateTime();
    DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
    return fmt.print(dt);
} catch (Exception e) {
    //Report issue to Analytics service
} 
Run Code Online (Sandbox Code Playgroud)

对我而言,这个错误似乎更不可能出现在Crittercism上,因为它应该被抓住了.有谁能解释一下?

java android jodatime crittercism

33
推荐指数
1
解决办法
6116
查看次数

使用Joda时间比较两个日期

我想比较两个日期,但是我遇到了麻烦.1日期是从java.util.date对象创建的,另一个是手动制作的.以下代码是一个示例:

Date ds = new Date();
DateTime d = new DateTime(ds);

DateTime e = new DateTime(2012,12,07, 0, 0);
System.out.println(d.isEqual(e));
Run Code Online (Sandbox Code Playgroud)

然而,测试结果证明了false.我猜这是因为时间.如何检查这两个日期是否相等(我的意思是年,月,日相同)?

java time date jodatime

33
推荐指数
3
解决办法
6万
查看次数