Java 从我的日期变量中删除时间
我有我的Date of Birth变量,它最初的类型是int。然后它被解析为String()并用SimpleDataFormat解析为Date 唯一的问题是它不断返回默认时间,包括日期Java 从我的日期变量中删除时间,java,date,datetime,Java,Date,Datetime,我有我的Date of Birth变量,它最初的类型是int。然后它被解析为String()并用SimpleDataFormat解析为Date 唯一的问题是它不断返回默认时间,包括日期 public Date getDob(){ String format = Integer.toString(this.dob); try{ date = new SimpleDateFormat("ddMMyyyy").parse(format); }catch(Pars
public Date getDob(){
String format = Integer.toString(this.dob);
try{
date = new SimpleDateFormat("ddMMyyyy").parse(format);
}catch(ParseException e){
return null;
}
return date;
}
返回:1999年1月16日星期六00:00:00 CET[我想删除粗体时间]
非常感谢你的帮助
解决方案:
public String getDob(){
Date newDate = new Date(this.dob);
String date = new SimpleDateFormat("E MMM dd").format(newDate);
return date;
}
不能更改
Date
类的toString()
方法
您所做的是解析某个字符串到Date并返回Date实例,并尝试打印它,该实例在内部调用Date
的toString()
,并且具有固定格式
您可以使用
format()
方法将Date
转换为String
,并以您想要的任何格式打印它您不能更改toString()
方法的Date
类
您所做的是解析某个字符串到Date并返回Date实例,并尝试打印它,该实例在内部调用Date
的toString()
,并且具有固定格式
您可以使用format()
方法将Date
转换为String
,并以您想要的任何格式打印它
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
如果需要,以长(毫秒)为单位存储日期
要了解更多图案,请查看此图案
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
如果需要,以长(毫秒)为单位存储日期
有关更多模式,请查看java.util.Date对象的定义既有日期部分,也有时间部分 日期时间!=一串 理解日期时间对象不是字符串。我们创建日期时间对象中包含的日期时间值的字符串表示,但这样做会生成一个与日期时间对象完全分离的新字符串对象 本地日期 如果您只需要一个日期,而不需要一天中的时间概念,那么可以使用LocalDate类,该类可以在Java 8中找到,也可以在Java 8中找到(受Joda time的启发) 乔达时间 默认情况下,Joda Time使用标准格式。如果需要其他格式的字符串,请浏览该类(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 );
根据定义,java.util.Date对象既有日期部分,也有时间部分 日期时间!=一串 理解日期时间对象不是字符串。我们创建日期时间对象中包含的日期时间值的字符串表示,但这样做会生成一个与日期时间对象完全分离的新字符串对象 本地日期 如果您只需要一个日期,而不需要一天中的时间概念,那么可以使用LocalDate类,该类可以在Java 8中找到,也可以在Java 8中找到(受Joda time的启发) 乔达时间 默认情况下,Joda Time使用标准格式。如果需要其他格式的字符串,请浏览该类(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 );
format
的值是多少?解析dob变量后,String format=“16011999”1999年1月16日格式的值是多少?解析dob变量后,String format=“16011999”1999年1月16日更好的解决方案:使用Joda Time或java.Time,两者都有一个表示“只是一个日期”的类型那我该怎么做呢?为了让您了解情况,我正在设计一个非常基本的数据库。学生构造函数包含int-dob参数,该参数被解析为字符串,然后在Data类型的date变量中格式化。只需将输入解析为date,并在希望以漂亮格式显示它的地方,使用SimpleDataFormat#format()我设法解决了这个问题,现在就编辑原始帖子:-)谢谢大家这是我上面的评论告诉大家的:)更好的解决方案:使用Joda Time或java.Time,两者都有一个表示“just a date”的类型,那么我应该怎么做呢?为了让您了解情况,我正在设计一个非常基本的数据库。学生构造函数包含int-dob参数,该参数被解析为字符串,然后在Data类型的date变量中格式化。只需将输入解析为date,并在希望以漂亮格式显示它的地方,使用SimpleDataFormat#format()我设法解决了这个问题,现在就编辑原帖:-)谢谢大家这就是我上面的评论告诉大家的:)我不完全确定这是否有效。基本上,dob指的是我的对象的构造函数中使用的出生日期,从我读到的这个给出当前日期?好的,我会试试这个!一会儿就回来了:)它工作得很好!然而,我可以用Joda Time输出的格式似乎要整洁得多。例如1996/09/02,这正是我想要的!你的代码也运行得很好:)@Booch不用担心,只要问一下就可以了。我不完全确定这是否有效。基本上,dob指的是我的对象的构造函数中使用的出生日期,从我读到的这个给出当前日期?好的,我会试试这个!一会儿就回来了:)它工作得很好!然而,我可以用Joda Time输出的格式似乎要整洁得多。例如1996/09/02,这正是我想要的!你的代码也很好:)@Booch不用担心,只要问一下就可以了。谢谢Basil,很抱歉回复太晚了。试试这个,然后回答!我想说一声非常感谢巴兹尔,我被告知要利用乔达的时间,但这确实让我有点困惑。你的例子真的很有帮助,并且让它工作得很好!祝你愉快day@Booch是的,在乔达的时间里有一点学习曲线。如果你做任何约会时间的工作,那么你的努力是值得的。要找到许多例子来快速展平曲线。再次感谢巴兹尔:-)谢谢巴兹尔,很抱歉回复太晚。试试这个,然后回答!我想说一声非常感谢巴兹尔,我被告知要利用乔达的时间,但这确实让我有点困惑。你的例子真的很有帮助,并且让它工作得很好!祝你愉快day@Booch对