标签: jodatime

如果我尝试比较Scala中的2个joda-time DateTime值,我会得到java.lang.NoClassDefFoundError.如何解决这个问题?

这是一个例子:


import org.scala_tools.time.Imports._
...
val dt1 : DateTime = new DateTime ("2010-09-01T12:00Z")
val dt2 : DateTime = new DateTime ("2010-10-01T12:10Z")
println (dt1 < dt2) // This is the Main.scala:48 line mentioned in the stack trace below
...

如果我编译并运行它,我得到


java.lang.NoClassDefFoundError: scala/Ordered
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at org.scala_tools.time.JodaImplicits$class.RichReadableInstant(Implicits.scala:70)
    at org.scala_tools.time.Imports$.RichReadableInstant(Imports.scala:20)
    at myproject.Main$.main(Main.scala:48)
...

可能是什么原因以及如何解决这个问题?

我使用所有(joda-time,SBT,Scala,SUN JVM)最新的稳定版本(excl joda-time - 我使用其最新的快照版本).

comparison datetime scala jodatime

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

Joda DateTime 非法值

我正在使用Joda-Time处理应用程序中的日期,但发现自己很困惑。我需要使用两个字符串(一个用于日期,一个用于一天中的小时)生成一个日期。

我通过使用 RegEx 确保了一天中的时间,但仍有一些日期通过我的 RegEx(例如 2 月 30 日)。

我想过在 try 块中使用以下 DateTime 构造(一旦解析了子字符串)

DateTime(
    int year,
    int monthOfYear,
    int dayOfMonth,
    int hourOfDay,
    int minuteOfHour
)
Run Code Online (Sandbox Code Playgroud)

然后在 catch 块中抛出我函数的 Exception ,但根据api doc,这个构造函数不会IllegalArgumentException像其他一些人那样抛出我期望捕获的异常。

任何人都有任何指针来判断 MoY/DoM 对是否形成有效的一对以便能够抛出异常?

java exception-handling jodatime

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

在 JSP 中格式化和解析基于 Joda-Time 的日期和时间对象

我正在使用joda-time-jsptags-1.1.1使用以下 taglib格式化和解析JSP 页面上基于Joda-Time的日期和时间对象。

<%@taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %>
Run Code Online (Sandbox Code Playgroud)

我在 Oracle 数据库中有使用标准 UTC 格式存储的日期。

使用以下 JSTL 标记,

<c:set var="startDate" value="${row.discountStartDate}"/>
<c:set var="endDate" value="${row.discountEndDate}"/>
Run Code Online (Sandbox Code Playgroud)

这两个日期分别以下列格式显示。

2013-02-16T22:31:59.000+05:30 
2013-02-28T22:32:03.000+05:30   
Run Code Online (Sandbox Code Playgroud)

我需要使用特定时区以特定格式显示这些日期。我正在尝试按如下方式解析这些日期。

<joda:parseDateTime var="startDate"
                    pattern="dd-MMM-yyyy HH:mm:ss"
                    value="${row.discountStartDate}"
                    dateTimeZone="Asia/Kolkata"/>

<joda:parseDateTime var="endDate"
                    pattern="dd-MMM-yyyy HH:mm:ss"
                    value="${row.discountStartDate}"
                    dateTimeZone="Asia/Kolkata"/>
Run Code Online (Sandbox Code Playgroud)

我希望以给定的格式和区域解析这些日期。但是,我收到以下异常。

java.lang.IllegalArgumentException:格式无效:“2013-02-16T22:31:59.000+05:30”在“13-02-16T22:31:59.000+05:30”处格式错误

如何解析这些日期

jsp hibernate jstl jodatime

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

Joda时间格式无效

当我尝试使用Joda时间执行此代码时出错:

// yyyy-mm-dd, also tried 17-Feb-2013
String input = "2013-02-17";

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
DateTime dt = formatter.parseDateTime(input);

TextView tv = (TextView) findViewById(R.id.tvShow);
tv.setText("HERE >>> " + dt.toString());
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

logcat说:

03-18 16:58:14.919: W/System.err(8259): java.lang.IllegalArgumentException: Invalid format: "2013-02-17" is malformed at "13-02-17"
03-18 16:58:14.919: W/System.err(8259):     at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:871)
03-18 16:58:14.919: W/System.err(8259):     at com.example.dateformatter.MainActivity.onCreate(MainActivity.java:42)
03-18 16:58:14.919: W/System.err(8259):     at android.app.Activity.performCreate(Activity.java:5163)
03-18 16:58:14.919: W/System.err(8259):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-18 16:58:14.919: W/System.err(8259):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
03-18 16:58:14.919: W/System.err(8259):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
03-18 16:58:14.919: W/System.err(8259):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
03-18 16:58:14.919: W/System.err(8259):     at …
Run Code Online (Sandbox Code Playgroud)

android jodatime

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

Jodatime没有使用0和前几个月的前缀?Java的

所有,

我创建了一个函数来从Joda DateTime对象创建一个Date字符串.

    public static String getDateString(DateTime dT)
{
    String dateString = dT.getDayOfMonth() + "-";
    dateString = dateString + dT.getMonthOfYear() + "-";
    dateString = dateString + dT.getYear() + " ";
    dateString = dateString + dT.getHourOfDay() + ":";
    dateString = dateString + dT.getMinuteOfHour() + ":" + dT.getSecondOfMinute();
    logger.finer("Date String is : " + dateString);
    return dateString;
}
Run Code Online (Sandbox Code Playgroud)

问题是几天和几个月,在它之前为零,例如10月8日,正在印刷为

8-11-2013 12:51:49

然后,当我下次执行我正在预期的程序时读取此值时,这会破坏我的格式

我需要格式明确DD-MM-YYYY

输出正确如下

08-11-2013 12:51:49

谢谢

java jodatime

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

使用Joda-Time获取会议记录

下面是zulu日期字符串:

2013-12-18T23:41:54.959Z
Run Code Online (Sandbox Code Playgroud)

我想将其转换为GMT并使用Joda-Time检索分钟.我构建以下方法:

public static int minutesFromDateString(final String s){
    DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm").withZone(DateTimeZone.forID("Europe/Berlin"));
    DateTime dt = formatter.parseDateTime(s);

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(dt.toDate());

    return calendar.get(Calendar.MINUTE);
}
Run Code Online (Sandbox Code Playgroud)

但是这会返回错误:

12-22 16:04:11.940:E/AndroidRuntime(6433):java.lang.IllegalArgumentException:格式无效:"2013-12-18T23:41:54.959Z"格式错误为"13-12-18T23:41:54.959 Z"

任何想法都错了吗?

java time android date jodatime

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

Joda-Time将字符串日期时间转换为另一种格式

我有这个字符串Feb-16-2015 00:00如何将此转换为另一个日期时间字符串与AM/PM?

java datetime jodatime

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

使用两个 LocalDateTime 实例来计算持续时间

我正在尝试计算两个实例之间的持续时间LocalDateTime。这里的特别之处在于,每个实例都LocalDateTime可能来自世界上的任何地方:

LocalDateTime start可能来自内华达州LocalDateTime end也可能来自东京LocalDateTime显然,与 相关联的每个“时间”都是该位置的本地。

所以如果我说...

LocalDateTime start = LocalDateTime.parse("2015-07-14T10:00:00");并说start代表芝加哥,这意味着芝加哥时间上午 10:00。那我可以说...

LocalDateTime end = LocalDateTime.parse("2015-07-14T03:00:00");并且end代表莫斯科,所以现在是莫斯科时间凌晨 3:00。

我能否创建一个足够强大的解决方案,允许startend代表世界上任何城市,并且仍然正确计算两者之间的持续时间?

java time timezone date jodatime

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

如何解析 UTC 时间并在 JodaTime java 中显示本地时间?

String strDateTime = "2015-08-14 16:25:12"; //From database that was stored in UTC
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").withZone(DateTimeZone.UTC);     
DateTime dateTime = DateTime.parse(strDateTime, dateTimeFormatter);
LocalDateTime local = dateTime.toLocalDateTime();
// local = 2015-08-14T16:25:12.000

I want to get the date in my local time zone???
where local = 2015-08-14T11:25:12.000 // 11 VS 16 
Run Code Online (Sandbox Code Playgroud)

知道我在这里做错了什么吗?

java jodatime

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

Scala中的DateTime格式混淆

所以我在.csv文件中有以下数据(这只是前几行) -

time                  temp
2015-08-14 00:00:05   30.00
2015-08-14 00:00:15   31.25
2015-08-14 00:00:25   33.45
2015-08-14 00:00:35   34.76
2015-08-14 00:00:45   36.43
Run Code Online (Sandbox Code Playgroud)

然后我创建以下案例类 -

scala> case class Temps(time: org.joda.time.format.DateTimeFormat, temp: String)
Run Code Online (Sandbox Code Playgroud)

然后我的目标是通过创建解析函数来创建RDD

scala> def parse(line: String) = {
       val data = line.split(',')
       val time = data(0).????
       val temp= data(1).toString
       Temps(time, temp)
       }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我该把什么放在哪里?在上面?我不完全确定在这种情况下如何格式化DateTime.

scala jodatime apache-spark

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