标签: jodatime

乔达时间 DateTimeZone

我在浏览joda 网站的时区页面时发现了这个

-05:00  EST   
-05:00  EST5EDT   
-05:00  Etc/GMT+5   
Run Code Online (Sandbox Code Playgroud)

我只是想知道这是什么EST5EDT意思,我通常使用EST所以只是想知道它。

在发布问题之前我已经搜索过并没有发现任何内容。

java timezone jodatime

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

如何使用 Java 中的 Joda 时间库获取 ISO 年的月份开始和结束日期

对于特定的月份和年份,我想使用 Java 中的 Joda 时间库获取 ISO 年的月份开始日期和结束日期。例如,我的月份为 3 月,年份为 2014 年,所以我想知道 ISO 年份中的 3 月的开始日期和结束日期。

除了 joda-time 库之外,还有其他方法可以得到同样的东西吗?

java jodatime

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

Joda-Time 库无法在启用 Proguard 的 Android 5 上运行

这个问题只发生在 Android 5 中。应用程序在此时崩溃写入,我创建了一个新DateTime对象,例如:

mStartTime = new DateTime(DateTimeZone.getDefault());
Run Code Online (Sandbox Code Playgroud)

崩溃报告是:

java.lang.AbstractMethodError: abstract method "long boq.f()"
   at org.joda.time.chrono.BasicYearDateTimeField.(BasicYearDateTimeField.java:46)
   at org.joda.time.chrono.BasicChronology.assemble(BasicChronology.java:273)
   at org.joda.time.chrono.GregorianChronology.assemble(GregorianChronology.java:197)
   at org.joda.time.chrono.AssembledChronology.setFields(AssembledChronology.java:323)
   at org.joda.time.chrono.AssembledChronology.(AssembledChronology.java:102)
   at org.joda.time.chrono.BasicChronology.(BasicChronology.java:131)
   at org.joda.time.chrono.BasicGJChronology.(BasicGJChronology.java:75)
   at org.joda.time.chrono.GregorianChronology.(GregorianChronology.java:153)
   at org.joda.time.chrono.GregorianChronology.getInstance(GregorianChronology.java:133)
   at org.joda.time.chrono.GregorianChronology.getInstance(GregorianChronology.java:99)
   at org.joda.time.chrono.GregorianChronology.(GregorianChronology.java:70)
   at org.joda.time.chrono.GregorianChronology.getInstanceUTC(GregorianChronology.java:80)
   at org.joda.time.chrono.ISOChronology.(ISOChronology.java:59)
   at org.joda.time.base.BaseDateTime.(BaseDateTime.java:73)
   at org.joda.time.DateTime.(DateTime.java:184)
   at com.znapo.photo_sharer.asynctasks.GetAllSessionTask.onPostExecute(GetAllSessionTask.java:149)
   at com.znapo.photo_sharer.asynctasks.GetAllSessionTask.onPostExecute(GetAllSessionTask.java:1)
   at android.os.AsyncTask.finish(AsyncTask.java:636)
   at android.os.AsyncTask.access$500(AsyncTask.java:177)
   at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:135)
   at android.app.ActivityThread.main(ActivityThread.java:5254)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Run Code Online (Sandbox Code Playgroud)

我的完整 Proguard 配置文件是:

-dontwarn org.apache.**
-dontwarn com.google.android.**
-dontskipnonpubliclibraryclassmembers

##---------------Begin: proguard …
Run Code Online (Sandbox Code Playgroud)

java android proguard jodatime

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

如何获取从特定日期开始的总月数?

我是 Android 新手。我有一个要求,我有一个字段可以输入一个人的出生日期。成功选择后,我想返回从出生日期到当前日期的总月数。例如,如果我输入出生日期截至2012年10月19日,我想返回36(个月)。我搜索了这个,但没有找到任何适合我的要求的东西。这是我当前返回成功数据的代码,

private void showDate(int year, int month, int day) {

    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(0);
    cal.set(year, month, day);
    Date date = cal.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

    if(System.currentTimeMillis() > date.getTime()) {
        edtDate.setText(sdf.format(date));
        LocalDate date1 = new LocalDate(date);
        LocalDate date2 = new LocalDate(new java.util.Date());
        PeriodType monthDay = PeriodType.yearMonthDayTime();
        Period difference = new Period(date1, date2, monthDay);
        int months = difference.getMonths();
        months=months + 1;
        System.out.println("16102015:Nunber of Months"+months);
    }else{
        Toast.makeText(mActivity,getResources().getString(R.string.date_validationmsg),Toast.LENGTH_LONG).show();
    }


}
Run Code Online (Sandbox Code Playgroud)

datetime android jodatime

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

将日期时间转换为纪元时间在 Java/scala 中损失一个小时

我正在尝试将日期时间字符串转换为10/10/2015 10:00:00自 Unix 纪元以来的秒数,即1444471200. 然而,奇怪的是我取回了1444467600实际上是10/10/2015 09:00:00. 这是我的代码:

// using "joda-time" % "joda-time" % "2.9",
//       "org.joda" % "joda-convert" % "1.8.1",

import org.joda.time.DateTime
import org.joda.time.format.DateTimeFormat

val dt = DateTime.parse(dateTimeString, DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss"))
dt.getMillis / 1000
Run Code Online (Sandbox Code Playgroud)

这个小时偏移量来自哪里,我该如何摆脱它?我的本地时区是格林威治标准时间(无论如何目前都为 UTC)...

java scala jodatime

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

无论日期如何,查找小时范围是否重叠

我有一组两个小时的范围

10 PM - 02 AM
01 AM - 08 AM
Run Code Online (Sandbox Code Playgroud)

无论日期如何,我都想检查它们中的任何一个是否重叠。

例如:第一个范围可能是 8 月 1 日和 2 日,而第二个范围可能是 8 月 10 日。

这是我到目前为止

private Interval createInterval(final OpeningClosingTimesEntry entry) {
    LocalDateTime openingHour = LocalDateTime.fromDateFields(entry.getOpenTime());
    LocalDateTime closingHour = LocalDateTime.fromDateFields(entry.getCloseTime());
    if(closingHour.isBefore(openingHour)){
        closingHour = closingHour.plusDays(1);
    }
    return new Interval(openingHour.toDate().getTime(), closingHour.toDate().getTime());
}

private Interval adjustSecondIntervalDay(final Interval interval1,  final Interval interval2){
    if(interval1.getEnd().getDayOfYear() > interval2.getStart().getDayOfYear()){
        DateTime start = interval2.getStart().plusDays(1);
        DateTime end = interval2.getEnd().plusDays(1);
        return new Interval(start, end);
    }
    return interval2;
}
Run Code Online (Sandbox Code Playgroud)

java jodatime java-8

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

Scala中两个日期之间的月差

我在 Scala 中有两个格式为“yyyy-MM-dd”的日期,它们都是一个月的最后一天(2015-05-31),我想找到它们之间的月份差异。我有以下代码,但要找到月差并不容易。

 val format = new java.text.SimpleDateFormat("yyyy-MM-dd")         
 val diff = format.parse(date1).getTime - format.parse(date2).getTime

 val days = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS)
Run Code Online (Sandbox Code Playgroud)

有什么更好的建议吗?

scala jodatime

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

Joda DateTime 数组按日期时间对数组排序

我有一个 Joda DateTimes 的数组列表,如下所示:

List <DateTime> nextRemindersArray = new ArrayList<DateTime>();
nextRemindersArray.add(reminderOneDateTime);
nextRemindersArray.add(reminderTwoDateTime);
nextRemindersArray.add(reminderThreeDateTime);
Run Code Online (Sandbox Code Playgroud)

我正在尝试按升序对日期进行排序,但遇到了麻烦:

我用谷歌搜索并找到了这个页面:

https://cmsoftwaretech.wordpress.com/2015/07/19/sort-date-with-timezone-format-using-joda-time/

我尝试过这样的:

nextRemindersArray.sort(nextRemindersArray);
Run Code Online (Sandbox Code Playgroud)

但它给了我错误:

Error:(1496, 37) error: incompatible types: List<DateTime> cannot be converted to Comparator<? super DateTime>
Run Code Online (Sandbox Code Playgroud)

然后我尝试这样:

DateTimeComparator dateTimeComparator = DateTimeComparator.getInstance();
nextRemindersArray.sort(nextRemindersArray, dateTimeComparator);
Run Code Online (Sandbox Code Playgroud)

也像这样:

nextRemindersArray.sort(nextRemindersArray, new DateTimeComparator());
Run Code Online (Sandbox Code Playgroud)

但都有错误。

我尝试了 Joda 时间手册,但没有太大帮助。如何对数组进行排序?

在此先感谢您的帮助

sorting datetime arraylist jodatime comparator

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

从日期转换为日期时间时如何删除时区

我有一个从数据库获取的日期,我想将其转换为日期时间并将其设置为开始日。我写在下面:

Date fromDate = studentDateJoin.getDate();
//result: fromDate = Mon Jan 01 00:00:02 ICT 2018
//convert to DateTime 
DateTime newDate = new DateTime(fromDate);
Run Code Online (Sandbox Code Playgroud)

但是当我转换它时,在转换后添加时区。新日期看起来像:

newDate = 2018-01-01T14:13:04.574Z+7
Run Code Online (Sandbox Code Playgroud)

我有一个问题:如何将其转换为开始日并删除时区:我想将其转换为如下所示的示例:

 //Convert it begin day and remove time zone
 newDate = 2018-01-01T00:00:00.00;
Run Code Online (Sandbox Code Playgroud)

如何将其转换为 beginDay 并删除时区:谢谢

java time datetime jodatime

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

java中的方法 DateTime.now() 和 new DateTime(System.currentTimeMillis()) 是否相同?

我需要知道,在java(我的版本jdk 8)中,我可以替换,new DateTime(System.currentTimeMillis())这个代码形式,' DateTime.now()'?

我用过包import org.joda.time.DateTime;

如何在java 8中写同样的东西(日期和时间)?

java datetime date jodatime java-time

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