我的日期格式为EEE MMM dd HH:mm:ss zzz yyyy
我必须将其转换为dd/MM/yyyy
我做了以下事情:
SimpleDateFormat fmt = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
SimpleDateFormat fmtddMMyyyy = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date d = fmt.parse("Mon May 28 00:00:00 IST 2012");<br>
String formattedDate = fmtddMMyyyy.format(d);
当我尝试打印d
时,会显示0027833001988071567
。
我哪里错了?
答案 0 :(得分:2)
我必须猜测你的真实代码只是与你展示的内容有轻微联系。由于一些实验和文件。
原始解析可能会抛出一个异常,你打印的每个都与你的日期操作无关。
为了解决问题
所有这一切都在一个简单的类中,只包含一个包含代码的main方法。
如果问题仍然存在,请返回代码及其输出。
根据我的建议部分应用,你可能会以此结束:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class Experiment {
public static void main(String args[]) throws ParseException {
SimpleDateFormat fmt = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
SimpleDateFormat fmtddMMyyyy = new SimpleDateFormat("dd/MM/yyyy",
Locale.US);
java.util.Date d = fmt.parse("Mon May 28 00:00:00 IST 2012");
String formattedDate = fmtddMMyyyy.format(d);
System.out.println(formattedDate);
}
}
打印出来
28/05/2012
答案 1 :(得分:1)
尝试:
String formattedDate = fmtddMMyyyy.format(d);
UPD:我得到了以下解决方案:
SimpleDateFormat fmt = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
工作正常(没有语言环境定义也不适合我)。因为您根据英语语言定义月份名称和星期几名称,而不是我所设想的本地名称。