从我的Date变量中删除时间

时间:2014-04-30 17:48:54

标签: java date datetime

我的出生日期变量最初是int类型。然后将其解析为toString()并使用simpleDateFormat解析为Date。

唯一的问题是它不断返回它的默认时间,包括日期。

public Date getDob(){
    String format = Integer.toString(this.dob);
    try{
        date = new SimpleDateFormat("ddMMyyyy").parse(format);
    }catch(ParseException e){
        return null;
    }
    return date;
}

返回:1月16日星期六 00:00:00 CET 1999 [我想删除大胆的时间]

非常感谢你的帮助!

解决方案:

public String getDob(){
    Date newDate = new Date(this.dob);
    String date = new SimpleDateFormat("E MMM dd").format(newDate);
    return date;
}

3 个答案:

答案 0 :(得分:4)

您无法更改toString()类的Date方法,

你正在做的是你正在解析一些String to Date并返回Date实例并尝试打印它,内部调用toString() Date并且它具有固定格式,

您可以使用format()方法将Date转换为String并以您想要的任何格式打印

答案 1 :(得分:1)

试试这个

Date originalDate = new Date();
long timeInMills = originalDate.getTime();

Date newDate = new Date(timeInMills);
String date = new SimpleDateFormat("E MMM dd").format(newDate);

System.out.println(date);

输出:

Wed Apr 30

如果您想在需要时以较长(以毫秒为单位)存储日期。

有关更多模式,请查看SimpleDateFormat

答案 2 :(得分:1)

根据定义,java.util.Date对象具有日期部分和时间部分。

Date-Time!= String

了解日期时间对象不是字符串。我们创建日期时间对象中包含的日期时间值的字符串表示,但这样做会生成一个完全独立于日期时间对象的新String对象。

LOCALDATE

如果您只想要一个没有时间概念的日期,请使用Joda-Time中的LocalDate类和Java 8中的新java.time package(受Joda-Time启发)

约达时间

默认情况下,Joda-Time使用ISO 8601标准格式。如果您想要其他格式的字符串,请浏览DateTimeFormat类(DateTimeFormatters的工厂)。

Joda-Time 2.3中的示例代码。

String input = "01021903"; // First of February, 1903.
DateTimeFormatter formatter = DateTimeFormat.forPattern( "ddMMyyyy" );
LocalDate dateOfBirth = formatter.parseLocalDate( input );
String outputStandard = dateOfBirth.toString();  // By default, the ISO 8601 format is used.
String outputCustom = formatter.print( dateOfBirth );