我想将joda设置DateTime
为今天凌晨2点(请参见下面的示例代码)。但是我得到了这个例外:
Exception in thread "main" org.joda.time.IllegalFieldValueException: Value 2 for hourOfDay is not supported: Illegal instant due to time zone offset transition: 2011-03-27T02:52:05.239 (Europe/Prague)
at org.joda.time.chrono.ZonedChronology$ZonedDateTimeField.set(ZonedChronology.java:469)
at org.joda.time.MutableDateTime.setHourOfDay(MutableDateTime.java:702)
解决上面的异常或DateTime
在一天的特定时间创建异常的正确方法是什么?
样例代码:
MutableDateTime now = new MutableDateTime();
now.setHourOfDay(2);
now.setMinuteOfHour(0);
now.setSecondOfMinute(0);
now.setMillisOfSecond(0);
DateTime myDate = now.toDateTime();
谢谢。
似乎您正在尝试从特定的本地时间到达DateTime
实例,并且您希望该功能对日光节约具有强大的作用。试试这个…(请注意,我在美国/东部,所以我们的过渡日期是2011年3月13日;我必须找到正确的日期来获取您今天遇到的例外。下面更新了我的CET代码,该代码今天开始过渡。
)此处的见解是,乔达(Joda)提供了相关信息LocalDateTime
,可让您推断本地壁钟设置以及在您所在时区是否合法。在这种情况下,如果时间不存在,我只添加一个小时(您的应用程序必须确定这是否是正确的策略。)
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalDateTime;
class TestTz {
public static void main(String[] args)
{
final DateTimeZone dtz = DateTimeZone.forID("CET");
LocalDateTime ldt = new LocalDateTime(dtz)
.withYear(2011)
.withMonthOfYear(3)
.withDayOfMonth(27)
.withHourOfDay(2);
// this is just here to illustrate I'm solving the problem;
// don't need in operational code
try {
DateTime myDateBorken = ldt.toDateTime(dtz);
} catch (IllegalArgumentException iae) {
System.out.println("Sure enough, invalid instant due to time zone offset transition!");
}
if (dtz.isLocalDateTimeGap(ldt)) {
ldt = ldt.withHourOfDay(3);
}
DateTime myDate = ldt.toDateTime(dtz);
System.out.println("No problem: "+myDate);
}
}
此代码产生:
当然,由于时区偏移转换,无效瞬间!
没问题:2011-03-27T03:00:00.000 + 02:00
在我的网站中,用户A创建了一个从上午9:00开始的事件。我将该时间转换为GMT,这样,如果用户B在两小时前的不同时区看到该事件,它可以转换为用户B的时区,并显示该事件在11:00AM开始。 我唯一的想法是,当我得到如下所示的时区偏移量时,我是否应该总是将日期设置为一月,以便无论实际月份如何,我总是得到相同的时区偏移量?或者有没有更好的方法来处理这件事?
我试图用android的JodaTime库解析ISO格式的日期,但得到了错误的时区偏移量。 我的默认时区是“欧洲/莫斯科”,但结果是“1990-05-04T00:00:00.000 0400”,而它应该是“1990-05-03T23:00:00.000 0300”。Android版本是KitKat。 我做错了什么?
我创建了以下示例代码来演示这种行为,并展示我提出的解决方案。 } 产出:
问题内容: 这是来自Apache日志的示例日期: 我已经成功地将其解析为year(int),month(time.Month),day(int),hour(int),minute(int),second(int)和timezone(string)。 如何构造time.Time,使其包含时区偏移量? 这是我到目前为止的内容: 我应该用什么代替?或在这里不合适。 问题答案: 您可以使用构造具有固定偏移
我有一个由5个分区组成的主题如下: 似乎分区的偏移量非常接近其余分区的偏移量之和。我不知道如何以及为什么。
问题内容: 我需要下一个流程: nodejs utils api中有这种可能性吗? 问题答案: 您可以使用node-time,如下所示: