所以我试图将带有日期的字符串解析为另一种格式,但它没有改变格式。解析函数似乎可能会覆盖SimpleDateFormat设置吗?
Date dateOfItem = new SimpleDateFormat("E, d MMMM yyyy", Locale.ENGLISH).parse(item.date);
Log.v("APP", dateOfItem.toString());
item.date例如:星期二,2015年5月12日 这就是我希望格式在Date中的方式。但日志显示为: Tue May 12 00:00:00 CDT 2015 ,这不是我在SimpleDateFormat中的格式。
那么如何将该字符串转换为具有我在SimpleDateFormat中作为参数的格式的日期?
答案 0 :(得分:3)
Date
没有格式。它只是
表示特定时刻,精度为毫秒
您在日志中看到的内容是Date#toString()
的结果。
因此,请使用SimpleDateFormat
format(Date)
Date
个String
对象,或使用原来的{{1}}值。
答案 1 :(得分:1)
使用此过程
DateFormat df = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss E", Locale.getDefault());
curdate = df.parse("String date");
SimpleDateFormat formatter = new SimpleDateFormat("E, dd MMM yyyy");
newFormat = formatter.format(curdate);
答案 2 :(得分:1)
您正在进行反向解析。
你有item.data,它是E, d MMMM yyyy
格式,然后解析它。
如果要以指定格式打印日期,则应使用SimpleDateFormat#format方法。
SimpleDateFormat sdf = new SimpleDateFormat("E, d MMMM yyyy");
Log.v("APP", sdf.format(item.date));
同时检查javadoc
答案 3 :(得分:1)
您从String
开始并加入Date
。这就是你使用SimpleDateFormat
for。
然后您使用的是日期的默认toString()
方法,因此它不会应用任何自定义格式。
您需要做的是:
SimpleDateFormat format = new SimpleDateFormat("E, d MMMM yyyy", Locale.ENGLISH);
Date dateOfItem = format.parse(item.date); //string to date
Log.v("APP", format.format(dateOfItem)); //or date to string
答案 4 :(得分:1)
请改为尝试:
DateFormat formatter = new SimpleDateFormat("E, d MMMM yyyy", Locale.ENGLISH);
Log.v("APP", formatter.format(dateOfItem));
使用dateOfItem.toString()
使用自己的output format。