下面的代码给出了解析日期为"Wed Jan 13 00:00:00 EST 2010"而不是"Wed Jun 13 00:00:00 EST 2010".任何想法都非常感激.
SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());
Run Code Online (Sandbox Code Playgroud) 我正在阅读文本并将日期存储为LocalDate变量.
有没有办法让我保留DateTimeFormatter的格式,这样当我调用LocalDate变量时,它仍然是这种格式.
编辑:我希望parsedDate以25/09/2016的正确格式存储,而不是作为字符串打印
我的代码:
public static void main(String[] args)
{
LocalDate date = LocalDate.now();
DateTimeFormatter formatters = DateTimeFormatter.ofPattern("d/MM/uuuu");
String text = date.format(formatters);
LocalDate parsedDate = LocalDate.parse(text, formatters);
System.out.println("date: " + date); // date: 2016-09-25
System.out.println("Text format " + text); // Text format 25/09/2016
System.out.println("parsedDate: " + parsedDate); // parsedDate: 2016-09-25
// I want the LocalDate parsedDate to be stored as 25/09/2016
}
Run Code Online (Sandbox Code Playgroud) 如何通过JDBC插入和获取java.time类型到SQL数据库(如H2数据库引擎)?LocalDate
旧的方式使用PreparedStatement::setDate和ResultSet::getDate工作的遗留java.sql.Date类型.我想避免使用这些麻烦的旧日期时间类.
通过JDBC驱动程序发送java.time类型的现代方法是什么?
在我的程序中有一个非常奇怪的问题.在这里你可以看到String birthday并Log检查它:
birthday = String.valueOf(birthYear) + "-" + String.valueOf(birthMonth) + "-" + String.valueOf(birthDay);
Log.i(TAG, "Birthday: " + birthday)
Run Code Online (Sandbox Code Playgroud)
然后我把它放到SimpleDateFormat并检查它Log:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
Date birthDate = sdf.parse(birthday);
Log.i(TAG, "Birth date : " + birthDate);
Run Code Online (Sandbox Code Playgroud)
然后Logcat我有:
I/App? Birthday: 1999-10-15
I/App? Birth date: Fri Jan 15 00:10:00 GMT+04:00 1999
Run Code Online (Sandbox Code Playgroud)
正如你在日期中看到的那样Jan,但是在字符串中它的10日期应如下所示:
Fri Nov 15 00:10:00 GMT+04:00 1999
Run Code Online (Sandbox Code Playgroud)
我的错误在哪里?
PS我认为我的问题与使用SimpleDateFormat.parse()时获取错误数据有某种联系
LocalDate date = LocalDate.now();
System.out.println("date :" + date );//default format is yyyy-MM-dd
System.out.println(date.getClass().getName());//java.time.LocalDate
Run Code Online (Sandbox Code Playgroud)
如何使用format 来格式化
以上date内容。但您可以使用字符串日期模式,即。输出应该只是类型。LocalDatedd-MM-yyyydd-MM-yyyyLocalDate
String ip="2011-05-01T06:47:35.422-05:00";
ZonedDateTime mzt = ZonedDateTime.parse(ip).toInstant().atZone(ZoneOffset.UTC);
System.out.println(mzt);
System.out.println("-----");
String ip2="2011-05-01T00:00:00.000-05:00";
ZonedDateTime mzt2 = ZonedDateTime.parse(ip2).toInstant().atZone(ZoneOffset.UTC);
System.out.println(mzt2);
Run Code Online (Sandbox Code Playgroud)
输出:
2011-05-01T11:47:35.422Z
-----
2011-05-01T05:00Z
Run Code Online (Sandbox Code Playgroud)
为什么在案例2中更改日期格式?由于这个原因,我收到SQLServer数据库错误.