Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
格式化日期Java_Java_Date_Datetime_Date Format - Fatal编程技术网

格式化日期Java

格式化日期Java,java,date,datetime,date-format,Java,Date,Datetime,Date Format,如何格式化如下所示的字符串 2012年12月8日星期六00:00:00 JST 进入yyyy-mm-dd,即 2012-12-08 通过浏览,我发现了以下代码: SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); String dateInString = "Sat Dec 08 00:00:00 JST 2012"; try { Date date = formatter.par

如何格式化如下所示的字符串

2012年12月8日星期六00:00:00 JST

进入yyyy-mm-dd,即

2012-12-08

通过浏览,我发现了以下代码:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
    String dateInString = "Sat Dec 08 00:00:00 JST 2012";

    try {

        Date date = formatter.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }
但是,我无法修改它以接受第一行(Sat Dec 08 00:00:00 JST 2012)作为字符串并将其格式转换为yyyy mm dd格式

我该怎么办?我应该尝试修改这个吗?还是尝试另一种方法

更新:我正在使用您的答案中的这个(获取错误:无法解析的日期:“Sat Dec 08 00:00:00 JST 2012”)

试试这个-

SimpleDateFormat srcFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.JAPANESE);
SimpleDateFormat destFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.JAPANESE);
Date date = srcFormatter.parse("Sat Dec 08 00:00:00 JST 2012");
String destDateString = destFormatter.format(date);
将您的格式更改为新的SimpleDataFormat(“yyyy-MM-dd”,Locale.ENGLISH)


谢谢..

您需要两个
SimpleDataFormat
对象。一个是使用
parse()
方法从字符串解析日期,另一个是使用
format()
方法以所需格式输出日期。有关日期格式的更多信息,请检查。

第一个字符串使用英语单词,因此您应该为SimpleDataFormat指定区域设置<代码>新SimpleDataFormat(“dd-MMM-yyyy”,Locale.ENGLISH)。不要认为这是可行的,我已经更新了qn,使其更加具体。参见字符串dateInString=“Sat Dec 08 00:00:00 JST 2012”;你实际上有两个问题。1) 您需要2种日期格式(如军阀和Subbrajyotimajumder所述)。2) 如果您不提供区域设置并在默认语言不是英语的jvm上执行代码,它将无法解析单词。我已经更新了代码以包含您和SubhrajyotiMajumder的答案,但我无法让它工作。字符串仍然不可解析+提供区域设置。或者,只有当默认语言为英语时,它才会起作用。@Subhrajyoti Majumder:他希望以这种格式输出
2012-12-08
@Subhrajyoti Majumder-字符串仍然无法解析为什么你会按照上面的答案选择英语而不是日语?这对我来说非常有效,这就是为什么!如果你想去日本,那么你可以改变它!!你在哪里使用parse变量?我更新我的答案!我忘记更新变量名了!!现在看一看!
SimpleDateFormat srcFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.JAPANESE);
SimpleDateFormat destFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.JAPANESE);
Date date = srcFormatter.parse("Sat Dec 08 00:00:00 JST 2012");
String destDateString = destFormatter.format(date);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
String dateInString = "Wed Oct 16 00:00:00 CEST 2013";
    try {
        SimpleDateFormat parse = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
        Date date = parse.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }