标签: jodatime

如何使用 Joda 将服务器时间转换为本地时间?

我正在开发手机应用程序。因此,在发布应用程序后,将为世界各地的所有用户做好准备。我需要用用户的本地时间调整服务器时间。我想也许 Joda(我正在使用的库)能够做到这一点。我的问题是如何将服务器时间更改为用户本地时间。

服务器返回“ 2013-04-17T07:43:45Z ”作为日期/时间。搜索互联网后,我可以成功将其解析为“ 17 Apr 2013, 07:43 AM ”。这是我的方法:

private String formatFanciedDate(String date) {
        date = date.substring(0 , date.length()-1); // Removing Z otherwise crash happens

        try {
            LocalDateTime dt1 = LocalDateTime.parse(date); // Like 2013-03-30T09:04:56.123
            return dt1.toString("dd MMM yyyy, HH:mm a");
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        }

        return "";
    }
Run Code Online (Sandbox Code Playgroud)

但是,这不是我的当地时间(正确的时间应该是下午 15:00 左右)。我怎样才能把这个时间改成我的当地时间?

java localtime jodatime

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

dayOfMonth 的值 31 必须在 [1,30] 三月的范围内

我得到:

线程“main” org.joda.time.IllegalFieldValueException 中的异常:无法解析“1444-05-31 10-10”:dayOfMonth 的值 31 必须在 [1,30] 范围内

代码是:

    Chronology hijri = IslamicChronology.getInstanceUTC();
    DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH-mm")
            .withChronology(hijri);
    DateTime hijriDt = formatter.parseDateTime("1444-05-31 10-10");
Run Code Online (Sandbox Code Playgroud)

我在某处读到 joda 从 0 而不是 01 开始计算月份。但是,这是用户输入,需要通过格式化程序进行解析。我不能使用 joda 的常规 setter 和 getter 来设置日期。

java datetime parsing date jodatime

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

如何解决scala中的无效日期格式错误?

我收到以下错误:

val formatter = ISODateTimeFormat.dateTimeParser()
scala> val date2 = "Tue Dec 29 11:11:30 IST 2015"
 date2: String = Tue Dec 29 11:11:30 IST 2015

scala> formatter.parseDateTime(date2)
java.lang.IllegalArgumentException: Invalid format: "Tue Dec 29 11:11:30 IST 2015" is malformed at "ue Dec 29 11:11:30 IST 2015"
Run Code Online (Sandbox Code Playgroud)

如何解决以下错误??

java datetime scala jodatime

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

将字符串转换为iso日期格式

所以我试图将字符串转换为日期的 iso 格式。这是我要转换的字符串 "2016-07-05 02:14:35.0" 我希望以这种格式使用 iso 8601 "2016-07-05T02:14:35.0"

到目前为止我有这个

 DateTimeFormatter format = DateTimeFormat.forPattern("YYYY-MM-DDTHH:mm:sszzz");
     new LocalDate();
    LocalDate newDate = LocalDate.parse(created,format);
     created = newDate.toString();
Run Code Online (Sandbox Code Playgroud)

但它给了我这个例外

ERROR: Illegal pattern component: T; nested exception is java.lang.IllegalArgumentException: Illegal pattern component: T
Run Code Online (Sandbox Code Playgroud)

我跟着例子,我不知道我在这里做错了什么。任何帮助,将不胜感激。

java datetime iso string-formatting jodatime

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

数据框-从时间戳列减去分钟

环境:Spark 1.6;斯卡拉

简单的问题,但我没有得到准确的答案。我有一个数据框 DF

id | cr_date
-----------------------
1| 2017-03-17 11:12:00
----------------------
2|2017-03-17 15:10:00
Run Code Online (Sandbox Code Playgroud)

我需要从 cr_date 减去 5 分钟。我试过

val DF2= DF.select ($"cr_Date".cast("timestamp").minusMinutes(5)) // 不工作

有什么建议吗?谢谢

datetime scala jodatime dataframe apache-spark

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

java Date和LocalDateTime中一个月中的天数

对于startDate和endDate,如何确定以月和日为单位的时间段(剩下的内容):

String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
SimpleDateFormat format = new SimpleDateFormat(pattern);
Date start = format.parse("2016-11-09T02:00:00.000Z");
Date end = format.parse("2017-09-30T09:00:00.000Z");
Run Code Online (Sandbox Code Playgroud)

结果我想要:10个月和22天(结束日期)

java datetime jodatime

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

在Android中将UTC日期转换为当地时间?

我有一个String类似的日期2017-09-16T05:06:18.157,我想将其转换为当地时间 (IST)。在印度标准时间,它将在2017-09-16 10:36:18

使用 Joda-Time,我尝试将其转换为本地,但我无法做到。

下面是我的代码:

private String getConvertDate(String date_server) {
    DateTimeFormatter inputFormatter = DateTimeFormat
            .forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")
            .withLocale(Locale.US);

    DateTime parsed = inputFormatter.parseDateTime(date_server);

    DateTimeFormatter outputFormatter = DateTimeFormat
            .forPattern("yyyy-MM-dd HH:mm:ss")
            .withLocale(Locale.US)
            .withZone(DateTimeZone.getDefault());

    return outputFormatter.print(parsed);
}
Run Code Online (Sandbox Code Playgroud)

java timezone datetime android jodatime

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

如何比较时间戳是否落在 Java 中给定时间段的范围内

在我的 Java Spring MVC Web Application,我正在尝试编写一个程序来保存一些带有时间戳的数据。但是我有一个我必须排除的特定时间段。

例如,我有以下时间戳: Sat Jul 28 17:03:00 IST 2018这是一个 Java 日期对象。在保存到数据库之前,我必须检查这个时间是否在指定范围内,如果我必须在时间范围结束后获得下一分钟。

但时间范围是以下格式的字符串:

String startTime =  "5:03 PM";
String endTime = "5:10 PM";
Run Code Online (Sandbox Code Playgroud)

因此,如果我的 timeStamp 介于这段时间之间,则我的时间戳应更新为Sat Jul 28 17:11:00 IST 2018.

我现在正在寻找比较两个时间值的方法,因为一个是字符串,另一个是时间戳。

有什么办法可以转换吗String endTime = "5:10 PM"?到Sat Jul 28 17:11:00 IST 2018或只是比较的部分时间,计算出分的区别,并添加到时间戳。

java calendar jodatime

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

在一定时间内执行Java程序

我有一个要求,我需要在工作日的上午9点到下午5点之间运行Java程序。时区将始终为UTC。该程序应从上午9点开始,并应在下午5点之前结束。如果无法在下午5点之前完成,则应睡到第二天08:59:59。如果第二天是周末,那么应该从星期一开始。

使用Joda时间的两个日期之间以秒为单位的文章差异?解释了如何获取两个预定义日期之间的秒差,但是我一直想计算下一个工作日上午9点与当前时间之间的差。

我正在考虑通过计算两个日期之间的时间差来使用Thread.sleep()。是否有一个Joda Time API,可以用来计算两个日期之间的时差?

我已经尝试获取当前工作日和第二天上午9点(如果它是工作日),计算这两个纪元之间的差,并将该值用于Thread.sleep,但这有点混乱。

以下是我使用的伪代码

getNextDayEpoch函数包含if / else代码,使用确定日期是工作日/周末java确定是工作日还是周末

根据是工作日还是周末,我得到相应的纪元值。

currentEpoch = getCurrentEpoch()
nextDayEpoch = getNextDayEpoch()

difference = nextDayEpoch - currentDayEpoch

try {
    Thread.sleep(difference);
} catch (InterruptedException e) {
    e.printStackTrace();
}

Run Code Online (Sandbox Code Playgroud)

您能提出更好的建议吗?

java jodatime

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

如何在Scala中获取两个给定日期之间的天数

我试图获取两个给定日期之间的所有日期,但无法获取。

我试过这样。

val dateformat = new SimpleDateFormat("yyyy-MM-dd")
var start = dateformat.parse("2020-10-01")
var end = dateformat.parse("2020-10-12")

val days = Days.daysBetween(start, end)
val months = Months.monthsBetween(start, end)
Run Code Online (Sandbox Code Playgroud)

但我得到了 daysBetween 未找到?

编辑:我的进口是:

import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.Months;
Run Code Online (Sandbox Code Playgroud)

scala date days jodatime

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