标签: jodatime

将Jodatime的DateTime的日期时区默认为UTC

我目前正在使用当前的习惯用法创建UTC DateTime对象

DateTime now = new DateTime(DateTimeZone.UTC);
Run Code Online (Sandbox Code Playgroud)

有没有办法默认所以我可以使用默认构造函数创建基于UTC的DateTime对象,所以它更隐含?

DateTime now = new DateTime();
Run Code Online (Sandbox Code Playgroud)

java jodatime

54
推荐指数
2
解决办法
7万
查看次数

在joda时间如何在不改变时间的情况下转换时区

我从数据库获取UTC时间戳,我正在设置为JodaTime DateTime实例

DateTime dt = new DateTime(timestamp.getTime());
Run Code Online (Sandbox Code Playgroud)

它存储时间完美,10:00 AM但与当地时区.例如,我在IST时区,距离UTC +5:30

我已经尝试了很多改变时区的东西,但是10:00 AM通过使用+5:30的不同,它可以将时间从其他东西改变为其他东西

有什么办法可以在不影响当前时间的情况下更改TimeZone

编辑:如果我现在的时间是:

2013-09-25 11:27:34 AM      UTC
Run Code Online (Sandbox Code Playgroud)

以下是我使用它时的结果 new DateTime(timestamp.getTime());

2013-09-25 11:27:34 AM  Asia/Kolkata
Run Code Online (Sandbox Code Playgroud)

以下是我使用时的结果new DateTime(timestamp.getTime(), DateTimeZone.UTC);

2013-09-25 05:57:34 AM  UTC
Run Code Online (Sandbox Code Playgroud)

java datetime jodatime

54
推荐指数
3
解决办法
6万
查看次数

如何使用Joda Time解析包含时区的日期

这段代码始终将日期解析为当前时区,而不是解析为正在解析的字符串中的时区.

final DateTimeFormatter df = DateTimeFormat
        .forPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy");
final DateTime dateTime = df
        .parseDateTime("Mon Aug 24 12:36:46 GMT+1000 2009");
System.out.println("dateTime = " + dateTime);
// outputs dateTime = 2009-08-24T04:36:46.000+02:00
Run Code Online (Sandbox Code Playgroud)

它输出:

dateTime = 2009-08-24T04:36:46.000+02:00
Run Code Online (Sandbox Code Playgroud)

而我期望:

dateTime = 2009-08-24T04:36:46.000+10:00
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

java timezone datetime jodatime

53
推荐指数
2
解决办法
4万
查看次数

如何将Joda Localdate转换为Joda DateTime?

我想在执行更多计算之前简单地将TimeZone信息添加回LocalDate.LocalDate来自使用ObjectLab LocalDateCalculator为现有DateTime添加天数,但该方法需要返回一个修改后的ReadableInstant以形成一个Interval,然后我可以检查它.

我正在尝试的代码相当于将Joda LocalDate转换为Joda DateTime:

LocalDate contextLocalBusinessDate = calculator.getCurrentBusinessDate();
DateTime businessDateAsInContextLocation = new DateTime(contextLocalBusinessDate, contextTimeZone);
Run Code Online (Sandbox Code Playgroud)

我得到的错误来自Joda的转换系统:

java.lang.IllegalArgumentException: No instant converter found for type: org.joda.time.LocalDate
        at org.joda.time.convert.ConverterManager.getInstantConverter(ConverterManager.java:165)
        at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:147)
        at org.joda.time.DateTime.<init>(DateTime.java:192)
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个解决此问题的方法,或者一种解决方法,可以获得具有完整时区信息的准确间隔.

java timezone jodatime

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

如何在Java中获取时区的当前日期和时间?

我的应用程序托管在伦敦服务器中.我在西班牙马德里.所以时区是-2小时.

如何获取我的时区的当前日期/时间.

Date curr_date = new Date(System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

例如

Date curr_date = new Date(System.currentTimeMillis("MAD_TIMEZONE"));
Run Code Online (Sandbox Code Playgroud)

随着Joda-Time

DateTimeZone zone = DateTimeZone.forID("Europe/Madrid");
DateTime dt = new DateTime(zone);
int day = dt.getDayOfMonth();
int year = dt.getYear();
int month = dt.getMonthOfYear();
int hours = dt.getHourOfDay();
int minutes = dt.getMinuteOfHour();
Run Code Online (Sandbox Code Playgroud)

java timezone jodatime

49
推荐指数
4
解决办法
20万
查看次数

AWS Java SDK - AWS身份验证需要有效的Date或x-amz-date标头

使用AWS SDK for Java和Java 1.8u60 +时出现以下异常.

com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 41C359C079CBAFCF)
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182) ~[aws-java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770) ~[aws-java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489) ~[aws-java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310) ~[aws-java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3608) ~[aws-java-sdk-s3-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3561) ~[aws-java-sdk-s3-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:647) ~[aws-java-sdk-s3-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:632) ~[aws-java-sdk-s3-1.10.10.jar:na]
Run Code Online (Sandbox Code Playgroud)

java amazon-s3 jodatime amazon-web-services aws-sdk

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

从Joda-Time DateTime获取java.util.Date

我有这样的代码:

// old_api(Date date)
old_api(calendar.getTime());
Run Code Online (Sandbox Code Playgroud)

目前,我需要Calendar用Joda-Time 取代DateTime.我想知道如何java.util.Date离开Joda-Time DateTime

java jodatime

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

Jodatime开始一天和一天结束

我想在一周的开头和当周的结束之间创建一个间隔.

我从以下答案中借鉴了以下代码:

private LocalDateTime calcNextSunday(LocalDateTime d) {
    if (d.getDayOfWeek() > DateTimeConstants.SUNDAY) {
        d = d.plusWeeks(1);
    }
    return d.withDayOfWeek(DateTimeConstants.SUNDAY);
}

private LocalDateTime calcPreviousMonday(LocalDateTime d) {
    if (d.getDayOfWeek() < DateTimeConstants.MONDAY) {
        d = d.minusWeeks(1);
    }
    return d.withDayOfWeek(DateTimeConstants.MONDAY);
}
Run Code Online (Sandbox Code Playgroud)

但现在我希望周一LocalDateTime是00:00:00,周日LocalDateTime是23:59:59.我该怎么做?

java android jodatime

46
推荐指数
3
解决办法
5万
查看次数

Joda时间:如何将String转换为LocalDate?

如何指定格式字符串以仅从字符串转换日期.就我而言,只有日期部分是相关的

将其构造为DateTime失败:

String dateString = "2009-04-17";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
DateTime dateTime = formatter.parseDateTime(dateString);
Run Code Online (Sandbox Code Playgroud)

有错误 java.lang.IllegalArgumentException: Invalid format: "2011-04-17" is too short

可能是因为我应该使用LocalDate.但是,我没有看到任何格式化程序LocalDate.转换String dateString = "2009-04-17";成最好的方法是什么LocalDate(或者如果不是正确的表示则是其他的东西)

谢谢...

java jodatime

45
推荐指数
4
解决办法
8万
查看次数

将Joda时间添加到Android Studio

我从Joda站点获取了文件,并按照这些说明添加库,但是当我进入Gradle同步时,我最终得到了错误:

Gradle Sync

Error:Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)

Gradle Build

Error:A problem occurred configuring project ':app'. 
> Cannot evaluate module joda : Configuration with name 'default' not found.
Run Code Online (Sandbox Code Playgroud)

有点困惑,我环顾四周,看到图书馆应该拥有自己的gradle文件,但joda包没有.当我尝试使用import org.joda.time;它无法解决joda.有没有人知道我做错了什么?

android jodatime libraries

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