什么“构造函数FastDateFormat(String,TimeZone,Locale)不可见”是什么意思?

时间:2014-08-05 18:01:04

标签: java date factory apache-commons

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)不可见”

错误信息并没有把我带到任何地方......我做错了什么?

1 个答案:

答案 0 :(得分:1)

与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,并配置了该日期格式模式。

您可以使用它将字符串解析为真实日期,假设这些字符串符合您的dateFormatPattern:

String dateString = "2014-04-03T14:02:57.182+0200";
Date myDate = myFastDateFormatter.parse(dateString);