这是一个例子:
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 - 我使用其最新的快照版本).
我正在使用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 对是否形成有效的一对以便能够抛出异常?
我正在使用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”处格式错误
如何解析这些日期
当我尝试使用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) 所有,
我创建了一个函数来从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
谢谢
下面是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"
任何想法都错了吗?
我有这个字符串Feb-16-2015 00:00如何将此转换为另一个日期时间字符串与AM/PM?
我正在尝试计算两个实例之间的持续时间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。
我能否创建一个足够强大的解决方案,允许start并end代表世界上任何城市,并且仍然正确计算两者之间的持续时间?
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)
知道我在这里做错了什么吗?
所以我在.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.