我有一个String对象,其中包含过期的日期和时间,如strDateTimeBoj="Oct 11 2014 5:30PM";
我需要将其提取为单独的日期和时间,因为需要检查当前日期和时间,此日期是否已过期......
我知道以下代码,但没有达到目标
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(string);
如何实现这一点.....任何帮助都会很棒......
答案 0 :(得分:1)
如果您需要两个单独的对象,1个用于日期,另一个用于时间,那么您可以尝试一下:
String strDateTimeBoj="Oct 11 2014 5:30PM";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date dateObj = dateFormat.parse(strDateTimeBoj);
SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
Date timeObj = dateFormat.parse(strDateTimeBoj);
但据我所知,一个对象应该做你需要达到的目标。
String strDateTimeBoj="Oct 11 2014 5:30PM";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
Date dateObj = dateFormat.parse(strDateTimeBoj);
将日期与当前日期进行比较。
答案 1 :(得分:0)
使用以下格式化程序:
String string="Oct 11 2014 5:30PM";
SimpleDateFormat formatter = new SimpleDateFormat("MMM dd yyyy hh:mma");
Date dt = formatter.parse(string);
System.out.println(formatter.format(dt));
输出
Oct 11 2014 05:30PM
答案 2 :(得分:0)
你可以试试这种方式
String strDateTimeBoj="Oct 11 2014 5:30PM";
//first you need to use proper date formatter
DateFormat df=new SimpleDateFormat("MMM dd yyyy hh:mmaa");
Date date=df.parse(strDateTimeBoj);// converting String to date
System.out.println(df.format(date));
Out put:
Oct 11 2014 05:30PM
我应该使用哪种日期格式?
您可以通过阅读this自行查找。
修改
您可以使用before()
after()
方法来比较日期。
Date today=new Date();
System.out.println(today.after(date));
System.out.println(today.before(date));
Out put:
false
true
答案 3 :(得分:0)
您可以使用SimpleDateFormat类以任何格式获得时间。请参阅此Calendar cal = Calendar.getInstance();
String currentDate = cal.get(Calendar.DAY_OF_MONTH)+"/"+(cal.get(Calendar.MONTH)+1)+"/"+cal.get(Calendar.YEAR);
Date date = new SimpleDateFormat("dd/MM/yyyy HH:mm", Locale.ENGLISH).parse(currentDate);