我正在尝试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 。
允许的纪元时间最小值是多少?我可以使用分钟长吗?
谢谢,迪恩
我有一个名为 的对象,它从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) 您好,我对 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) 我想在 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.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 上。
我预计这会引发异常,因为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.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)
基于上面的代码,我做了一些测试如下:
如果我将本地时区更改为UTC+8 Singapore Timezone,将会得到1899-12-31
如果我将本地时区更改为UTC+8 China Timezone,将会得到1900-01-01
如果我将本地时区更改为UTC-8 America/Los_Angeles Timezone,将会得到1900-01-01
如果我将本地时区更改为UTC+8 China Timezone,将会得到1900-01-01
有人可以帮忙澄清一下吗??它有点困惑。
我使用下面的代码来计算两个日期之间的年数、月数和天数 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 中遇到了 Joda 时间间隔。但它作为结束时间独占。
那么是否有一种替代方法可以作为结束时间(包括结束时间)
为什么我写的这个测试在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小时.这是违反直觉的.