相关疑难解决方法(0)

如何在Android Project中使用ThreeTenABP

我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.

对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:

>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

datetime android android-gradle-plugin threetenbp threetenabp

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

Joda Time LocalTime 24:00结束

我们正在创建一个日程安排应用程序,我们需要在白天代表某人的可用时间表,无论他们在哪个时区.以从约达时间的间隔,它代表了两个实例之间的绝对时间间隔的提示(开始包容性的,结束独家),我们创建了一个LocalInterval.LocalInterval由两个LocalTimes组成(开始包含,最终排他),我们甚至为Hibernate中的持久化做了一个方便的类.

例如,如果有人从下午1:00到下午5:00可用,我们将创建:

new LocalInterval(new LocalTime(13, 0), new LocalTime(17, 0));
Run Code Online (Sandbox Code Playgroud)

到目前为止一直很好 - 直到有人想在某天从晚上11点到午夜才有空.由于间隔结束是独占的,因此应该很容易表示:

new LocalInterval(new LocalTime(23, 0), new LocalTime(24, 0));
Run Code Online (Sandbox Code Playgroud)

确认!不行.这会抛出异常,因为LocalTime不能保持大于23的任何小时.

这对我来说似乎是一个设计缺陷--- Joda没有考虑到有人可能想要一个代表非包容性端点的LocalTime.

这真是令人沮丧,因为它在我们创造的非常优雅的模型中打了一个洞.

我有什么选择 - 除了分支Joda并在24小时内取出支票?(不,我不喜欢使用虚拟值的选项---比如23:59:59 ---代表24:00.)

更新:对于那些一直说不存在24:00的人,这里引用ISO 8601-2004 4.2.3注释2,3:"一个日历日[24:00]的结束与[00]重合:00]在下一个日历日的开始......"和"[hh]具有值[24]的表示仅优选代表时间间隔的结束...."

java localtime jodatime intervals

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

如何将一个时间段划分为多个时间段

我有两个变量的时间段,从start_dateend_date。有没有一种简单的方法可以将它分成更小的时间段,将值四舍五入。

下面是一个例子:

我有从15.01.2016到 的时期10.06.2016。我想把它分成几个月,所以我会有六个时期:

01.01.2016 - 31.01.2016  
01.02.2016 - 31.02.2016   
01.03.2016 - 31.03.2016  
01.04.2016 - 31.04.2016  
01.05.2016 - 31.05.2016  
01.06.2016 - 31.06.2016 
Run Code Online (Sandbox Code Playgroud)

我想包括两者之间的时间01.01.201615.01.2016不管它不在原始时期。

我一直在寻找一些想法,但此时似乎唯一的方法是使用开始日期并使用 DateAndTime::Calculations 进行迭代以确定间隔的边界,直到达到结束日期。

ruby ruby-on-rails

0
推荐指数
1
解决办法
2416
查看次数