我有一个字符串20130510T202132Z
,我想转换成一个DateTime
对象.
我一直在尝试使用Joda来实现这一点,但我无法让它工作.我已经找到了我能找到的关于这个主题的每一个链接 - 并且使用了格式化程序,但它根本就没有用完.
做这个的最好方式是什么?
谁能告诉我为什么这个测试失败了?我尝试了普通的Java Date util,它也给了我相同的结果.
java.lang.AssertionError:预期:2014年1月1日00:07:00 CET 2014年但是:Fri Jan 31 00:06:00 CET 2014
public static Date addDaysToDate(Date fromDate, int days){
DateTime dateTime = new DateTime(fromDate);
return dateTime.plusDays(days).toDate();
}
@Test
public void test() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
Date fromDate = sdf.parse("2014-06-30");
Date toDate = DateUtil.addDaysToDate(fromDate, 1);
assertEquals(sdf.parse("2014-07-01"), toDate);
}
Run Code Online (Sandbox Code Playgroud) 我有一个很长的格式:
Long l = 20151228;
我想将它解析为LocalDate对象.
我怎样才能做到这一点?
这是我的弦
2011-01-01T00:00:00.000Z
我将其更改为日期时间对象 org.joda.time.DateTime
这是我的代码
DateTimeFormatter formatter = DateTimeFormat
.forPattern("yyyy-MM-ddTHH:mm:ss.000Z");
DateTime dt = formatter.parseDateTime("2011-01-01T00:00:00.000Z");
Run Code Online (Sandbox Code Playgroud)
我有例外
非法图案成分:T
因此,T
and .000Z
始终存在,该如何格式化?
我在 Scala 中编写了以下有效的函数:
import java.text.SimpleDateFormat
import java.util.{Calendar, Date}
import java.util.{TimeZone, Date}
val curr_timeFmt = "YYYY_MM_dd_HH_mm_ss"
def curr_time(): String = {
val date = new Date
val currTS = new SimpleDateFormat(curr_timeFmt)
currTS.setTimeZone(TimeZone.getTimeZone("EST"));
currTS.format(date)
}
Run Code Online (Sandbox Code Playgroud)
我想将此函数的返回值存储为时间戳类型的 PG columnn 中的时间戳。
此外,在在线研究时,我听说 Java Calendar 和 Date 类不是线程安全和可变的。这是真的吗,如果是这样,我如何在 Java 8 中使用新的 joda 时间?
任何帮助将不胜感激,因为我已经在网上看了一段时间并尝试了一些东西,但似乎没有任何效果。
谢谢
我收到一个包含 ISO8601 日期时间的日期时间字符串,像这样"2001-07-04T12:08:56.235-07:00"
,然后这个字符串被解析为一个 jodatime 日期时间对象new DateTime("2001-07-04T12:08:56.235-07:00")
,然后使用参数传递的变量格式化程序模式再次将其转换为字符串,但是当发生这种情况时,没有使用时区,因此使用系统的默认时区。我想要的是从第一个给定日期中提取时区(或偏移量),并使用它相应地打印它。是否可以?
先谢谢了!