标签: jodatime

纪元时间可以倒退多远?

我正在尝试http://www.epochconverter.com/,我可以做100年,但是当我转到99年时,它似乎崩溃并报告1999而不是0099。这是一个错误吗?纪元时间应该能够代表多远的时间。

我还尝试将 MIN_LONG+1 插入到 joda-time 中,报告为 -292275055-05-16T16:47:04.192Z 所以基本上是年份 -292275055,这听起来比 1999 年更正确,而 epochconverter.com 甚至无法解析 min long 。

允许的纪元时间最小值是多少?我可以使用分钟长吗?

谢谢,迪恩

epoch jodatime

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

JodaTime LocalDate/LocalTime 不使用自定义 JSON 序列化器类进行解析

我有一个名为 的对象,它从API/框架中ReportEvent接收 aLocalTime和 a 。这可以通过谷歌的转换 API写入。然而,反序列化时会导致问题。LocalDateJodaTimeReportEventJSONGSONJodaTime partial

Logcat错误报告:

10-16 13:23:01.812: E/AndroidRuntime(8884): FATAL EXCEPTION: main
10-16 13:23:01.812: E/AndroidRuntime(8884): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nanospark.cnc/com.nanospark.cnc.MainActivity}: java.lang.IllegalArgumentException: Invalid format: "{"iChronology":{"iBase":{"iMinDa..."
10-16 13:23:01.812: E/AndroidRuntime(8884):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
10-16 13:23:01.812: E/AndroidRuntime(8884):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-16 13:23:01.812: E/AndroidRuntime(8884):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-16 13:23:01.812: E/AndroidRuntime(8884):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-16 13:23:01.812: E/AndroidRuntime(8884):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-16 13:23:01.812: E/AndroidRuntime(8884):     at android.os.Looper.loop(Looper.java:137)
10-16 13:23:01.812: E/AndroidRuntime(8884):     at android.app.ActivityThread.main(ActivityThread.java:5103)
10-16 13:23:01.812: E/AndroidRuntime(8884):     at java.lang.reflect.Method.invokeNative(Native Method)
10-16 13:23:01.812: …
Run Code Online (Sandbox Code Playgroud)

java android json jodatime gson

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

JodaTime:日期时间用 +00:00 代替 Z

您好,我对 joda 时间有疑问。我的应用程序与远程服务对话,并且此服务在使用此字符串时存在问题:

2015-04-14T09:29:02.485Z
Run Code Online (Sandbox Code Playgroud)

所以我用同样的方法测试了它(见 Z):

2015-04-14T09:29:02.485+00:00
Run Code Online (Sandbox Code Playgroud)

这有效。那么如何轻松删除Z并使用00:00,完全相同的内容是什么?我不想编写自己的格式化程序,因为它必须是 iso 8601。有没有一种简单的方法可以做到这一点?

我有以下代码:

...
public void myMethod(Datetime time){
    remoteCall(time.toString);
}
...
Run Code Online (Sandbox Code Playgroud)

java jodatime

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

将 Android 中的 Joda 时间转换为本地时区

我想在 android 中使用 Joda 时间库将时间转换为手机本地时区。

例如,我有 UTC 时间: 2016-01-14 11:13:56

我现在的时间是: 2016-01-14 12:13:56

当我运行此代码时:

DateTime dt = new DateTime(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime(usersResponse.lastUpdate),
                DateTimeZone.UTC);

String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)

我得到: 2016-01-14T10:13:56.000Z

当我运行此代码时:

DateTime dt = DateTime.parse(usersResponse.lastUpdate, DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));

String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)

我得到: 2016-01-14T11:13:56.000+01:00

当我运行此代码时:

DateTime dt = new DateTime(DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").parseDateTime(usersResponse.lastUpdate),
                DateTimeZone.forID("Europe/Rome"));

String time = String.valueOf(dt));
Run Code Online (Sandbox Code Playgroud)

我得到: 2016-01-14T11:13:56.000+01:00

但这是错误的,我应该收到: 2016-01-14T12:13:56.000+02:00

有没有我遗漏的配置。这个问题是否与夏令时有关(从这里的一些问题来看,我已经看到 Joda Time 管理了这个问题)

我怎样才能获得设备本地时间的时间。

谢谢

java timezone datetime android jodatime

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

如何检查日期是否超过 30 天?

我有一个java.util.Date我需要检查它是否超过 30 天。检查的最佳方法是什么?

for(Date date: listOfDates) {
  // how to check this date to see whether it is more than 30 days limit
  if(checkDateLimit()) {

  }
}
Run Code Online (Sandbox Code Playgroud)

我在 Java 7 上。

java date jodatime

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

JodaTime允许无效日期

我预计这会引发异常,因为2016年2月1日不是星期五:

final DateTimeFormatter formatter = DateTimeFormat.forPattern("EEEE, d MMMM yyyy");
final DateTime date = formatter.parseDateTime("Friday, 1 February 2016");
System.out.println(formatter.print(date));
Run Code Online (Sandbox Code Playgroud)

相反,它打印出来了Friday, 5 February 2016.我在这里错过了什么?

java jodatime

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

为什么使用相同的时区获取不同的 localDate

java.sql.Date date = java.sql.Date.valueOf("1900-01-01");
org.joda.time.LocalDate localDate = new org.joda.time.LocalDate(date);
Run Code Online (Sandbox Code Playgroud)

基于上面的代码,我做了一些测试如下:

  • 问题 #1 为什么我会得到具有相同时区的不同 localDate 对象?

如果我将本地时区更改为UTC+8 Singapore Timezone,将会得到1899-12-31

如果我将本地时区更改为UTC+8 China Timezone,将会得到1900-01-01

  • 问题 #2 为什么我在不同的时区得到相同的时间?

如果我将本地时区更改为UTC-8 America/Los_Angeles Timezone,将会得到1900-01-01

如果我将本地时区更改为UTC+8 China Timezone,将会得到1900-01-01

有人可以帮忙澄清一下吗??它有点困惑。

java datetime date jodatime java-time

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

如何使用 Joda-Time 计算两个日期之间的年数、月数和天数

我使用下面的代码来计算两个日期之间的年数、月数和天数 Joda-Time

public void getDateDiff(View view) {

    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy").withLocale(Locale.US);
    DateTime startDate = null;
    DateTime endDate = null;

    // expected output 23...2....29

    try {
        startDate = formatter.parseDateTime("01/09/1995");
        endDate = formatter.parseDateTime("30/11/2018");

        Period period = new Period(startDate, endDate);

        Log.e("No Of Years : ", period.getYears() + " Years, ");
        Log.e("No Of Months : ", period.getMonths() + " Months, ");
        Log.e("No Of Days : ", period.getDays() + " Days, ");

        tvResult.setText(String.format("No Of Years : %d Years, \nNo Of Months : %d Months, \nNo …
Run Code Online (Sandbox Code Playgroud)

java android jodatime android-jodatime

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

Java 中是否有 Joda-Time 间隔的替代方法,它可以用作结束时间

我正在尝试检查特定日期是否在特定日期范围内。我在 Java 中遇到了 Joda 时间间隔。但它作为结束时间独占。

那么是否有一种替代方法可以作为结束时间(包括结束时间)

java jodatime

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

jodatime期间的错误?

为什么我写的这个测试在jodatime 1.6.2中失败了?这是一个错误吗?

@Test
 public void testIfJodaTimePeriodsHandlesPeriodTypesOtherThanMinutesAndHours() {
  long twentyDaysInMillis = TimeUnit.MILLISECONDS.convert(20, TimeUnit.DAYS);
  Period twoWeeks = new Period(twentyDaysInMillis, PeriodType.weeks());
  Assert.assertEquals(2, twoWeeks.getWeeks()); 
// twoWeeks.getWeeks() actually returns 0!!
 }
Run Code Online (Sandbox Code Playgroud)

仅供参考,具有所有PeriodTypes的期间仅填写分钟和小时的字段,即使传递给构造函数的millis超过25小时.这是违反直觉的.

java period jodatime

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

标签 统计

jodatime ×10

java ×9

android ×3

date ×2

datetime ×2

android-jodatime ×1

epoch ×1

gson ×1

java-time ×1

json ×1

period ×1

timezone ×1