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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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.util.Date转换为字符串实例?_Java_Date - Fatal编程技术网

如何将给定格式的java.util.Date转换为字符串实例?

如何将给定格式的java.util.Date转换为字符串实例?,java,date,Java,Date,我是Java新手,正在尝试将字符串日期转换为特定的Java.util.date格式。未解析的字符串日期是yyyy-MM-dd-HH:MM:ss模式,我想将其更改为dd-MM-yyyy,为此我编写了一些第一个实现,如下所示: import java.text.SimpleDateFormat; public class testDate { public void parseDate() { try { String testDate = "20


我是Java新手,正在尝试将
字符串
日期转换为特定的
Java.util.date
格式。未解析的
字符串日期是
yyyy-MM-dd-HH:MM:ss
模式,我想将其更改为
dd-MM-yyyy
,为此我编写了一些第一个实现,如下所示:

import java.text.SimpleDateFormat;

public class testDate {

    public void parseDate() {
        try {
            String testDate = "2015-06-19 00:00:00.000000";
            SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy");
            java.util.Date parsedDate = format1.parse(testDate);
            System.err.println(parsedDate);
        } 
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        testDate td = new testDate();
        td.parseDate();
    }

}
输出
12月5日星期二00:00:00 IST 24
对于我这个新手来说是出乎意料的:)

因此,我想提出建议或指出我的错误所在。谢谢


注意:-有一篇类似的帖子(),但它讨论了将一个
日期
格式解析为另一个格式,而不是将
字符串
解析为另一个
日期
格式

您混淆了解析和呈现日期。当然,您需要使用日期的格式来解析日期,然后您可以使用不同的格式来呈现日期

        String testDate = "2015-06-19 00:00:00.000000";
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
        java.util.Date parsedDate = format1.parse(testDate);
        SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
        System.err.println(format2.format(parsedDate));

字符串的格式似乎与SimpleDataFormat的格式不同

试一试


您没有正确解析输入日期
format1
应该是传入日期的格式,而不是您想要的日期

try {
  String testDate = "2015-06-19 00:00:00.000000";
  SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
  java.util.Date parsedDate = format1.parse(testDate);
  SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
  System.err.println(format2.format(parsedDate));
} 

SimpleDataFormat应该具有正确的模式来解析给定的字符串。如果你像这样构造format1

SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
“parse”调用将在给定日期正常工作。之后,您可以根据自己的需要对其进行格式化:

public void parseDate() {
    try {
        String testDate = "2015-06-19 00:00:00.000000";
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        java.util.Date parsedDate = format1.parse(testDate);

        //change the pattern
        format1.applyPattern("dd-MM-yyyy");

        System.err.println(format1.format(parsedDate));
    } 
    catch (Exception e) {
        e.printStackTrace();
    }
}

解析字符串时,需要一个表示原始日期的日期对象。因此,您需要使用它附带的格式来解析它。然后,您需要另一个SimpleFormat和输出的目标格式

那么,试试这个:

import java.text.SimpleDateFormat;

public class testDate {

    public void parseDate() {
        try {
            String testDate = "2015-06-19 00:00:00.000000";
            // not sure about the Millisecond part ... might be SSSSSS
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
            java.util.Date parsedDate = format1.parse(testDate);

            SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
            String ouput = format2.format(parsedDate)
            System.err.println(parsedDate);
        } 
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        testDate td = new testDate();
        td.parseDate();
    }
}

可能重复感谢@JFPicard,但是那里的答案是从
Date
转换和解析到
Date
而不是
String
Date
感谢您提供的信息,这些信息有效,接受了您的amswer。由于我的名声,我不能高估任何人的职位。但我知道,我一定会这么做的。谢谢
import java.text.SimpleDateFormat;

public class testDate {

    public void parseDate() {
        try {
            String testDate = "2015-06-19 00:00:00.000000";
            // not sure about the Millisecond part ... might be SSSSSS
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
            java.util.Date parsedDate = format1.parse(testDate);

            SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
            String ouput = format2.format(parsedDate)
            System.err.println(parsedDate);
        } 
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        testDate td = new testDate();
        td.parseDate();
    }
}