我正在解析日期,但没有得到正确的结果。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
startDate = dateFormat.parse("2013-05-18");
获取输出“ Sat May 18 00:00:00 IST 2013 ”但我想以日期格式而不是字符串的简单2013-05-18格式。
提前致谢...!!!
我正在解析日期,但没有得到正确的结果。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
startDate = dateFormat.parse("2013-05-18");
获取输出“ Sat May 18 00:00:00 IST 2013 ”但我想以日期格式而不是字符串的简单2013-05-18格式。
提前致谢...!!!
如果您想要字符串“2013-05-18”中的字符串“2013-05-18”,则根本不需要任何解析。要将日期对象转换为具有给定格式的字符串,请使用SimpleDateFormat.format()
:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
startDate = dateFormat.parse("2013-05-18");
System.out.println(dateFormat.format(startDate));
Date 对象只是一个包含毫秒数的 long 值的包装器。它的toString()
方法不使用您用来解析字符串和创建 Date 对象的模式。
我同意@JB Nizet
Date now = new Date();
SimpleDateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Format : " + originalFormat.format(now));
输出
Format : 2013-05-18
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
SimpleDateFormat 是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。它允许格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
对于日期比较
public class DateComparision
{
public static void main( String[] args )
{
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2013-4-10");
Date date2 = sdf.parse("2013-4-30");
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
if(date1.compareTo(date2)>0){
System.out.println("Date1 is after Date2");
}else if(date1.compareTo(date2)<0){
System.out.println("Date1 is before Date2");
}else if(date1.compareTo(date2)==0){
System.out.println("Date1 is equal to Date2");
}else{
System.out.println("How to get here?");
}
}catch(ParseException ex){
ex.printStackTrace();
}
}
}
编辑:
public static void main( String[] args )
{
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2013-8-16");
Date date2 = sdf.parse("2013-8-15");
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
}catch(ParseException ex){
ex.printStackTrace();
}
}
输出:
2013-08-16
2013-08-15
Date1 is after Date2
编辑2:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2013-4-10");
Date date2 = sdf.parse("2013-5-30");
Date currentdate = sdf.parse("2013-5-15");
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
if(date1.compareTo(currentdate) * currentdate.compareTo(date2) > 0)
{
System.out.println("Current Date is between the two dates");
}
输出
2013-04-10
2013-05-30
Current Date is between the two dates
下面是一些有用的 SimpleDateFormat 示例:
public class JavaSimpleDateFormatTest
{
public static void main(String[] args)
{
// (1) get today's date
Date today = Calendar.getInstance().getTime();
// (2) create our date "formatter" (the date format we want)
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-hh.mm.ss");
// (3) create a new String using the date format we want
String folderName = formatter.format(today);
// (4) this prints "Folder Name = 2009-09-06-08.23.23"
System.out.println("Folder Name = " + folderName);
}
}
您可以在这里找到更多信息