小编Jod*_*hen的帖子

Joda Time从MutableDateTime实例中减去24小时,我想知道原因

我不明白为什么MutableDateTime.setDate()将时间设置为"昨天"(参见日志时间戳小时 - 它是20:28).这个时区有关系吗?我需要在格式化程序上设置一些东西吗?

我希望在使用"10/27/2010"调用setDate之后,日期将与解析日期00:00 EDT 10/27/10相同,而不是20/28 EDT 10/26/10.这是24小时前从"now".

我在这里缺少什么,或者我应该如何编辑代码以获得所需的结果?我是Joda Time的新手,想解开这个谜.

DateTimeFormatter dateFormatterJ = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTimeFormatter timestampFormatJ = DateTimeFormat.forPattern("HH:mm zzz MM/dd/yy");

MutableDateTime startDate = new MutableDateTime();

log.info("parsed date " + 
    timestampFormatJ.print(dateFormatterJ.parseMutableDateTime(startDateString)));

startDate.setDate((dateFormatterJ.parseMutableDateTime(startDateString)));

log.info("startDate: " + timestampFormatJ.print(startDate));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,startDateString只是"10/27/2010".

这是日志输出:

10-27 20:28:55 INFO parsed date: 00:00 EDT 10/27/10
10-27 20:28:55 INFO startDate: 20:28 EDT 10/26/10
Run Code Online (Sandbox Code Playgroud)

谢谢

java timezone jodatime

5
推荐指数
1
解决办法
1395
查看次数

Joda时间:DateTimeFormatter:一天的开始

DateTimeFormatter fmt = DateTimeFormat.forStyle('SS').withLocale(locale)DateTime dt = fmt.parseDateTime("11/4/03 8:14 PM");

上面的语句将正确解析字符串,并保存为DateTime(Joda Time).

现在如何表示一天的开始.以下是DateTime dt = fmt.parseDateTime("11/4/03 00:01 AM");

无法解析"11/4/03 00:01 AM":clockhourOfHalfday的值0必须在[1,12]范围内

我显然对标准感到困惑,比如一天开始时的简短表示.

谢谢.

jodatime

4
推荐指数
1
解决办法
2606
查看次数

为什么Scala说它看不到org.joda.time.Period的成员?

我正在编写一个使用Joda Time 2.0 的Scala脚本.

当我尝试运行我的脚本时,我得到这样的错误:

error: value weeks is not a member of object org.joda.time.Period
        case "w" => Some(Period.weeks(windowSpecNum))
Run Code Online (Sandbox Code Playgroud)

我也越来越为消息Period.minutes,Period.hoursPeriod.days.

这真的很奇怪,因为我使用其他Joda Time类没有问题,并且因为这个类在Scala REPL中工作正常:

scala> Period.minutes(5)
res0: org.joda.time.Period = PT5M
Run Code Online (Sandbox Code Playgroud)

我尝试了一些解决方法:

error: org.joda.time.Period does not have a constructor
        case "m" => Some(new Period().withMinutes(windowSpecNum))
Run Code Online (Sandbox Code Playgroud)

和:

case "m" => Some(Minutes.minutes(windowSpecNum))
error: error while loading Minutes, Missing dependency 'class org.joda.convert.FromString', required by lib/joda-time-2.0.jar(org/joda/time/Minutes.class)
Run Code Online (Sandbox Code Playgroud)

这没有任何意义,因为joda-convert-1.2.jar在我的类路径中.

只是为了确保我没有对类型做一些愚蠢的事情(我是Scala的新手)我试过这个:val p = Period.hours(5)并得到了同样的错误.

scala jodatime

4
推荐指数
1
解决办法
3760
查看次数

如何集成Joda-Time和Hibernate 4/MySQL 5?

我一直想把我们的申请转移到Joda-Time.有几个挂断......

1 -从政乔达整合时间在这里似乎是过时的对Hibernate 4.x的应用

2,建议的替代方案在这里似乎已经为零的文件/入门信息.

3-I找不到我的数据库中哪些类型(MySql 5.5.11)很好地映射到Joda-Time等价物的好参考.

有没有人知道如何处理这些?

mysql hibernate jodatime usertype

4
推荐指数
1
解决办法
1645
查看次数

上周是java.time.LocalDate吗?

我有一个每周统计系统,我想检查统计数据最后一次更新是否是上周.如果是的话,我想清除它.

目前,日期存储在LocalDate:

LocalDate lastUpdate;
Run Code Online (Sandbox Code Playgroud)

我已经有了这样的日常统计数据:

if(lastUpdate.isBefore(LocalDate.now())
{
    clearDailyStatistics();
}
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

if(/* something here? */)
{
    clearWeeklyStatistics();
}
Run Code Online (Sandbox Code Playgroud)

所以,问题是:我如何比较LocalDate对象的周数?不需要形成周的不同"标准" - 周一到周日将被使用(如Java DayOfWeek课程已经使用的那样).

请保留您关于Java 8 java.time类,没有Joda-Time或其他外部库的注释和答案.

java time date java-time

4
推荐指数
1
解决办法
1110
查看次数

JAVA中如何从字符串中获取时区

我有一个输入“+04:00”

我可以使用什么 API 来获取时区?


到目前为止,1)我研究了joda - https://www.joda.org/joda-time/apidocs/org/joda/time/DateTimeZone.html

   static DateTimeZone forOffsetHoursMinutes(int hoursOffset, int minutesOffset) 
Run Code Online (Sandbox Code Playgroud)

不确定这是否理想。

2)我检查了时区类。

http://docs.oracle.com/javase/6/docs/api/java/util/TimeZone.html#getTimeZone%28java.lang.String%29

 getTimeZone

public static TimeZone getTimeZone(String ID)

    Gets the TimeZone for the given ID.

    Parameters:
        ID - the ID for a TimeZone, either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. 
    Returns:
        the specified TimeZone, or the …
Run Code Online (Sandbox Code Playgroud)

java timezone jodatime

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

Java 8 DateTimeFormatters常量在哪里定义?

我在看的DateTimeFormatter班,我想知道在那里就像是常数"M","EEE""YY"等被定义.更具体地讲,应该是这样的地方给一个代码ChronoFieldTextStyle,它应该返回的DateTimeFormatter字符串片断如(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT)要映射到的字符串"MMM"

java datetime-format java-8 java-time

4
推荐指数
1
解决办法
450
查看次数

Freemarker是否与JodaTime有任何集成?

有没有办法在Freemarker中轻松格式化Joda DateTime对象?例如,使用Java日期,我们可以使用?字符串和其他指令.

我知道我可以调用Date并获得Java Date,但我希望有更好的方法.

datetime freemarker jodatime

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

查找Joda Time Duration是否为0秒

首先,我需要使用Java 7,所以我不能遗憾地使用SE8 Time,尽管我很乐意学习它!

我有一份持续时间清单如下:

List<Duration> durations;
Run Code Online (Sandbox Code Playgroud)

这些值中的大多数长约8小时,但有些值为零(故意).如何检查它们是0天,0分钟,0秒还是0毫秒?我需要检查每种方法如下,还是有更简洁的方法?

for(Duration duration : durations){
    if(duration.getStandardDays() == 0 && 
       duration.getStandardHours() == 0 && 
       duration.getStandardSeconds() == 0){
        //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

我问的原因是我注意到API中有不变的ZERO,我认为这与它有某种联系.我该如何与它进行比较?或者我应该?

https://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html

java time jodatime java-7

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

我的Joda Time格式模式是不正确的,在解析的DateTime输出中产生`T`和`Z`?

使用下面的Joda Time的模式语法,这个输入字符串:

Sunday, January 09, 2011 6:15:00 PM
Run Code Online (Sandbox Code Playgroud)

变成这个日期时间:

2011-01-09T06:15:00.000Z
Run Code Online (Sandbox Code Playgroud)

码:

String start = "Sunday, January 09, 2011 6:15:00 PM";

DateTimeFormatter parser1 = 
DateTimeFormat.forPattern("EEEE, MMMM dd, yyyy H:mm:ss aa");

DateTime startTime = parser1.parseDateTime(start);
Run Code Online (Sandbox Code Playgroud)

这种格式模式不正确吗?如果不是,有什么TZ日期时间输出里面在做什么?

2011-01-09T06:15:00.000Z
Run Code Online (Sandbox Code Playgroud)

java date-format jodatime

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