SimpleDateFormat让我做到这一点:
SimpleDateFormat mySimpleDateFormatter = new SimpleDateFormat("dd-MMM-yyyy");
但是FastDateFormat不会:
import org.apache.commons.lang3.time.FastDateFormat;
//...
FastDateFormat myFastDateFormatter = new FastDateFormat(str, tz, loc);
现在它抱怨:
“构造函数FastDateFormat(String,TimeZone,Locale)不可见”
错误消息不会指引我到任何地方...我做错了什么?
最佳答案
与Java的SimpleDateFormat
不同,您不能简单地声明Apache的FastDateFormat
类的实例。
相反,FastDateFormat
通过Factory Method Pattern静态提供类的实例-您必须调用类的静态方法getInstance
,如下所示:
String dateFormatPattern = "yyyy-mm-dd'T'HH:mm:ss.SSSZ";
FastDateFormat myFastDateFormatter = FastDateFormat.getInstance(dateFormatPattern);
现在,您已加载了使用该日期格式模式配置的myFastDateFormatter。
您可以使用它来将字符串解析为真实的Date,假设这些字符串符合您的dateFormatPattern:
String dateString = "2014-04-03T14:02:57.182+0200";
Date myDate = myFastDateFormatter.parse(dateString);