比较android中的两个字符串日期和时间?
我有两个字符串Datetime,如下所示:比较android中的两个字符串日期和时间?,android,android-date,Android,Android Date,我有两个字符串Datetime,如下所示: String Date1 = "05-09-2013 10:46:10" String Date2 = "06-09-2013 10:46:10" 我需要比较这些日期时间,我需要结果。试试这个 String pattern = "<yourPattern>"; SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try { Date one = dateFormat.
String Date1 = "05-09-2013 10:46:10"
String Date2 = "06-09-2013 10:46:10"
我需要比较这些日期时间,我需要结果。试试这个
String pattern = "<yourPattern>";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
try {
Date one = dateFormat.parse(<yourDate>);
Date two = dateFormat.parse(<yourDate>);
}
catch (ParseException e) {}
字符串模式=”;
SimpleDataFormat dateFormat=新的SimpleDataFormat(模式);
试一试{
dateone=dateFormat.parse();
Date二=dateFormat.parse();
}
捕获(异常解析){}
您可以像这样将字符串转换为日期:
String str = "12/12/1912";
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse(str);
回到弦上
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
System.out.println("Date is : " + formatter.format(date));
日期有前后两种方法,可以相互比较
顺便说一句,还有一个叫做Joda的图书馆,你也可以去看看
String pattern = "dd-MM-yyyy HH:mm:ss";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
Date one = dateFormat.parse(Date1String);
Date two = dateFormat.parse(Date2String);
现在您有了两个Date
对象,您可以对它们进行比较。尝试获得最佳结果。使用起来非常简单。试试看{
try{
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String str1 = "12/10/2013";
Date date1 = formatter.parse(str1);
String str2 = "13/10/2013";
Date date2 = formatter.parse(str2);
if (date1.compareTo(date2)<0)
{
System.out.println("date2 is Greater than my date1");
}
}catch (ParseException e1){
e1.printStackTrace();
}
SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd/MM/yyyy”);
字符串str1=“12/10/2013”;
Date date1=格式化程序.parse(str1);
字符串str2=“13/10/2013”;
Date date2=格式化程序.parse(str2);
如果(日期1)与(日期2)相比,则可以使用以下命令:
public static boolean CheckDates(String startDate, String endDate) {
SimpleDateFormat dfDate = new SimpleDateFormat("dd-MMM-yyyy");
boolean b = false;
try {
if (dfDate.parse(startDate).before(dfDate.parse(endDate))) {
b = true; // If start date is before end date.
} else if (dfDate.parse(startDate).equals(dfDate.parse(endDate))) {
b = true; // If two dates are equal.
} else {
b = false; // If start date is after the end date.
}
} catch (ParseException e) {
e.printStackTrace();
}
return b;
}
这段代码解释了当我们以字符串格式比较两个日期时,换句话说,当大于起始日期时,不允许使用截止日期
private void setTodate() {
// TODO Auto-generated method stub
// Process to get Current Date
int fYear, fMonth, fDay;
final Calendar c = Calendar.getInstance();
fYear = c.get(Calendar.YEAR);
fMonth = c.get(Calendar.MONTH);
fDay = c.get(Calendar.DAY_OF_MONTH);
// Launch Date Picker Dialog
DatePickerDialog dpd = new DatePickerDialog(RemindMeDetails.this,
new DatePickerDialog.OnDateSetListener() {
@SuppressLint("SimpleDateFormat")
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
try{
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
String fdate=recr_edit_Fromdate.getText().toString();
Date dateFD = formatter.parse(fdate);
String tdate=(dayOfMonth + "-"
+ (monthOfYear + 1) + "-" + year).toString();
Date dateTD = formatter.parse(tdate);
if (dateFD.compareTo(dateTD)<=0)
{
/* System.out.println("tdate is Greater than my fdate");
recr_edit_Todate.setText(dayOfMonth + "-"
+ (monthOfYear + 1) + "-" + year);*/
recr_edit_Todate.setText(tdate);
}
else{
showmessage("Alert", "Start date is not greater than End date");
}catch (ParseException e1){
e1.printStackTrace();
}
}
}, fYear, fMonth, fDay);
dpd.show();
}// method closed
private void setTodate(){
//TODO自动生成的方法存根
//获取当前日期的过程
国际财务年度、月、日;
最终日历c=Calendar.getInstance();
fYear=c.get(日历年);
fmmonth=c.get(日历月);
fDay=c.get(日历日期,每月的第天);
//启动日期选择器对话框
DatePickerDialog dpd=新的DatePickerDialog(提醒细节.this,
新建DatePickerDialog.OnDateSetListener(){
@SuppressLint(“SimpleDataFormat”)
@凌驾
公共无效onDateSet(日期选择器视图,整数年,
int monthOfYear,int dayOfMonth){
试试{
SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd-MM-yyyy”);
字符串fdate=recr_edit_Fromdate.getText().toString();
Date dateFD=格式化程序.parse(fdate);
字符串tdate=(dayOfMonth+“-”
+(monthOfYear+1)+“-”+年);
Date-dateTD=formatter.parse(tdate);
如果(dateFD.compareTo(dateTD)SimpleDateFormat sdf=新的SimpleDateFormat(“yyy-MM-dd”);
日期1=sdf.parse(“2010-02-22”);
日期2=sdf.parse(“2010-03-23”);
int i=日期1。与(日期2)相比;
开关(一){
案例-1://date1date2=1
返回sDate1;
案例0://date1==date2=0
违约:
返回sDate2;
}
}捕获(解析异常){
返回sDate1;
}
简单代码
fun CompareDates(str_date1:String,str_date2:String):Int {
lateinit var date1:Date
lateinit var date2:Date
if (!str_date1.isEmpty()&&!str_date2.isEmpty()) {
val formatter = SimpleDateFormat("dd/MM/yyyy")
date1 = formatter.parse(str_date1)
date2 = formatter.parse(str_date2)
}
return date1.compareTo(date2)
}
if (CompareDates() > 0) {
// comes when date1 is higher then date2
} else {
// comes when date2 is higher then date1
}
Int返回类型
fun CompareDates(str_date1:String,str_date2:String):Int {
lateinit var date1:Date
lateinit var date2:Date
if (!str_date1.isEmpty()&&!str_date2.isEmpty()) {
val formatter = SimpleDateFormat("dd/MM/yyyy")
date1 = formatter.parse(str_date1)
date2 = formatter.parse(str_date2)
}
return date1.compareTo(date2)
}
if (CompareDates() > 0) {
// comes when date1 is higher then date2
} else {
// comes when date2 is higher then date1
}
您好,如果它解决了您的问题,请您将答案标记为已接受,好吗?String pattern=“dd-MM-yyyy”;SimpleDateFormat-dateFormat=new SimpleDateFormat(pattern);尝试{Date one=dateFormat.parse(“2018-04-11”);Date two=dateFormat.parse(“2018-04-10”);Log.e(“Date 1-Date-Date-2”、“+one.compareTo(two”);}catch(异常解析e){e.printStackTrace();}
在一个中。compareTo(两个)如果两个日期相同,那么如果一个大于1,它将返回0,在另一个情况下返回-1。@umarataca请在答案中添加注释,使其完全可以理解