尝试转换格式时无法解析日期
Unparseable date while trying to convert format
我目前正在做一个项目,需要我将日期从一种格式转换为另一种格式。
这是我的代码
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class testDate {
static String date = "Wed Mar 27 18:14:25 CET 2019"; // String representing received date
static final String originalFormatS = "EEE MMM dd HH:mm:ss zzz yyyy"; // Corresponding date format
static final String displayFormatS = "dd/MM/yy"; // Wanted output format
public static void main (String[] args) throws Exception {
DateFormat originalFormat = new SimpleDateFormat(originalFormatS);
DateFormat displayFormat = new SimpleDateFormat(displayFormatS);
Date parsedDate = originalFormat.parse(date);
String outputDate = displayFormat.format(parsedDate);
System.out.println(outputDate);
}
}
但后来我得到 java.text.ParseException:无法解析的日期:"Wed Mar 27 18:14:25 CET 2019"
我试过 new Date(date);
但它说它已被弃用...
有什么想法吗?
提前致谢
你不在英国或美国,是吗?
SimpleDateFormat
需要语言环境才能正确解释 day/month 名称。
只需像这样创建您的 SimpleDateFormat
:
DateFormat originalFormat = new SimpleDateFormat(originalFormatS, Locale.US);
适合我...
PS:就像 Ben R. 所说:考虑使用 java.time
进行任何基于 date/time 的数据处理。
请在创建 SimpleDateFormat 实例时指定您的语言环境。
例如,使构造函数如下所示应该可以工作
DateFormat originalFormat = new SimpleDateFormat(originalFormatS,Locale.US);
你能试试这个吗?
public class testDate {
static String date = "Wed Mar 27 18:14:25 CET 2019"; // String representing received date
static final String originalFormatS = "EEE MMM dd HH:mm:ss zzz yyyy"; // Corresponding date format
static final String displayFormatS = "dd/MM/yy"; // Wanted output format
public static void main (String[] args) throws Exception {
Date originalFormat = new SimpleDateFormat(originalFormatS).parse(date);
DateFormat displayFormat = new SimpleDateFormat(displayFormatS);
String outputDate = displayFormat.format(originalFormat);
System.out.println(outputDate);
}
}
我目前正在做一个项目,需要我将日期从一种格式转换为另一种格式。
这是我的代码
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class testDate {
static String date = "Wed Mar 27 18:14:25 CET 2019"; // String representing received date
static final String originalFormatS = "EEE MMM dd HH:mm:ss zzz yyyy"; // Corresponding date format
static final String displayFormatS = "dd/MM/yy"; // Wanted output format
public static void main (String[] args) throws Exception {
DateFormat originalFormat = new SimpleDateFormat(originalFormatS);
DateFormat displayFormat = new SimpleDateFormat(displayFormatS);
Date parsedDate = originalFormat.parse(date);
String outputDate = displayFormat.format(parsedDate);
System.out.println(outputDate);
}
}
但后来我得到 java.text.ParseException:无法解析的日期:"Wed Mar 27 18:14:25 CET 2019"
我试过 new Date(date);
但它说它已被弃用...
有什么想法吗? 提前致谢
你不在英国或美国,是吗?
SimpleDateFormat
需要语言环境才能正确解释 day/month 名称。
只需像这样创建您的 SimpleDateFormat
:
DateFormat originalFormat = new SimpleDateFormat(originalFormatS, Locale.US);
适合我...
PS:就像 Ben R. 所说:考虑使用 java.time
进行任何基于 date/time 的数据处理。
请在创建 SimpleDateFormat 实例时指定您的语言环境。 例如,使构造函数如下所示应该可以工作
DateFormat originalFormat = new SimpleDateFormat(originalFormatS,Locale.US);
你能试试这个吗?
public class testDate {
static String date = "Wed Mar 27 18:14:25 CET 2019"; // String representing received date
static final String originalFormatS = "EEE MMM dd HH:mm:ss zzz yyyy"; // Corresponding date format
static final String displayFormatS = "dd/MM/yy"; // Wanted output format
public static void main (String[] args) throws Exception {
Date originalFormat = new SimpleDateFormat(originalFormatS).parse(date);
DateFormat displayFormat = new SimpleDateFormat(displayFormatS);
String outputDate = displayFormat.format(originalFormat);
System.out.println(outputDate);
}
}