我试图解析这个日期,SimpleDateFormat它不起作用:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Formaterclass {
public static void main(String[] args) throws ParseException{
String strDate = "Thu Jun 18 20:56:02 EDT 2009";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date dateStr = formatter.parse(strDate);
String formattedDate = formatter.format(dateStr);
System.out.println("yyyy-MM-dd date is ==>"+formattedDate);
Date date1 = formatter.parse(formattedDate);
formatter = new SimpleDateFormat("dd-MMM-yyyy");
formattedDate = formatter.format(date1);
System.out.println("dd-MMM-yyyy date is ==>"+formattedDate);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我用strDate =尝试这个代码"2008-10-14",我有一个肯定的答案.有什么问题?我该如何解析这种格式?
PS.我从a获得了这个日期,jDatePicker没有关于如何修改用户选择日期时获得的日期格式的说明.
我刚开始玩机智/小鸭子。它是用Clojure编写的,我以前没有Clojure的经验。我需要将2016-08-14T19:45:48.000 + 05:30这样的字符串解析为2016年8月14日(星期日)1945hrs之类的格式。我在Internet上搜索并遇到了lib clj-time。经过很长时间的努力后,我遇到了这个线程,并认为rfc822是我的杯茶。因此,我使用了格式化程序rfc822,但它给了我一个例外:
java.lang.IllegalArgumentException: Invalid format: "2016-08-16T00:00:00.000+05:30"
这是我的代码:
(ns firstproj.core
(:gen-class)
(:require [duckling.core :as p])
(:require [clj-time.format :as f]))
(defn -main
"I don't do a whole lot."
[x]
(p/load! { :languages ["en"]})
(def var_ (p/parse :en$core x [:time]))
(def date_string "2016-08-14T19:45:48.000+05:30")
(f/parse (f/formatters :rfc822) date_string))
Run Code Online (Sandbox Code Playgroud)
所以有人可以告诉我我在做什么错。或Clojure中的任何其他方式来获取我想要的日期时间格式。由于我对Clojure完全幼稚,因此请您详细回答,这将有助于我更好地理解这一点。谢谢。