如何将日期转换为字符串并再次转换为日期?

时间:2013-10-21 10:46:18

标签: java string date simpledateformat

您好我想将当前日期转换为此格式YYYY-MM-DD。但是,它会将日期转换为String格式,但我想将其转换回Date格式。那么有人可以就此提出建议吗?

这是我目前的代码

 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
 Date date = new Date();
 String datestring = dateFormat.format(date); 

6 个答案:

答案 0 :(得分:26)

试试这个:

 String DATE_FORMAT_NOW = "yyyy-MM-dd";
 Date date = new Date();
 SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
 String stringDate = sdf.format(date );
    try {
        Date date2 = sdf.parse(stringDate);
    } catch(ParseException e){
     //Exception handling
    } catch(Exception e){
     //handle exception
    }

答案 1 :(得分:4)

使用DateFormat#parse(String)

Date date = dateFormat.parse("2013-10-22");

答案 2 :(得分:0)

尝试此功能

public static Date StringToDate(String strDate) throws ModuleException {
    Date dtReturn = null;
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
    try {
        dtReturn = simpleDateFormat.parse(strDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return dtReturn;
}

答案 3 :(得分:0)

使用此函数将Date转换为String

public String convertDateToString(Date date, String format) {
        String dateStr = null;
        DateFormat df = new SimpleDateFormat(format);
        try {
            dateStr = df.format(date);
        } catch (Exception ex) {
            System.out.println(ex);
        }
        return dateStr;
    }

来自Convert Date to String in Java 。并将字符串再次转换为日期

public Date convertStringToDate(String dateStr, String format) {
        Date date = null;
        DateFormat df = new SimpleDateFormat(format);
        try {
            date = df.parse(dateStr);
        } catch (Exception ex) {
            System.out.println(ex);
        }
        return date;
    }

来自Convert String to date in Java

答案 4 :(得分:0)

将日期转换为字符串检查此帖子

Convert java.util.Date to String

要将字符串转换为日期,请尝试使用

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class StringToDate
{
    public static void main(String[] args) throws ParseException
    {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
        String strDate = "14/03/2003 08:05:10";     
        System.out.println("Date - " + sdf.parse(strDate));
    }
}

答案 5 :(得分:0)

TL;博士

  

如何将日期转换为字符串并再次转换为日期?

LocalDate.now().toString()
  

2017年1月23日

...和...

LocalDate.parse( "2017-01-23" )

java.time

该问题使用与最早版本的Java捆绑在一起的麻烦的旧日期时间类。这些类现在已经遗留下来,取而代之的是Java 8,Java 9及更高版本中内置的java.time类。

确定今天的日期需要一个时区。对于任何特定时刻,日期在全球范围内因地区而异。

如果您未提供,则会应用JVM的当前默认时区。该默认值可以在运行时期间随时更改,因此不可靠。我建议你总是指定你想要的/预期的时区。

ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate ld = LocalDate.now( z ) ;

ISO 8601

您所需的YYYY-MM-DD格式符合ISO 8601标准。

在解析/生成字符串时,java.time类默认使用该标准。因此,您只需拨打LocalDate::parseLocalDate::toString,而无需指定格式设置模式。

String s = ld.toString() ;

解析:

LocalDate ld = LocalDate.parse( s ) ;

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和& SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore