当前位置: 首页 > 面试题库 >

Android / Java-日期差异(天)

葛驰
2023-03-14
问题内容

我正在使用以下代码获取当前日期(格式为12/31/1999,即mm / dd / yyyy):

Textview txtViewData;
txtViewDate.setText("Today is " +
        android.text.format.DateFormat.getDateFormat(this).format(new Date()));

我还有另一个日期格式为:2019-08-25(即yyyy / mm / dd),

所以我想找出日期之间的天数差异,如何找到天数上的差异?

(换句话说,我想找到当前日期-yyyy / mm / dd格式化日期之间的差异)


问题答案:

并不是真正可靠的方法,最好使用JodaTime

  Calendar thatDay = Calendar.getInstance();
  thatDay.set(Calendar.DAY_OF_MONTH,25);
  thatDay.set(Calendar.MONTH,7); // 0-11 so 1 less
  thatDay.set(Calendar.YEAR, 1985);

  Calendar today = Calendar.getInstance();

  long diff = today.getTimeInMillis() - thatDay.getTimeInMillis(); //result in millis

这是一个近似值…

long days = diff / (24 * 60 * 60 * 1000);

要从字符串中解析日期,你可以使用

  String strThatDay = "1985/08/25";
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
  Date d = null;
  try {
   d = formatter.parse(strThatDay);//catch exception
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 


  Calendar thatDay = Calendar.getInstance();
  thatDay.setTime(d); //rest is the same....

但是,由于你确定日期格式Integer.parseInt(),因此也可以在子字符串上执行操作以获取其数字值。



 类似资料:
  • 问题内容: 我有一个PostgreSQL函数来计算日期差: 如果直接减去日期,则会计算出差额。但是在我的情况下,日期在变量as和中存在,这导致了问题。 如何减去变量中包含的日期? 问题答案: 除错 你的函数是做可以做 很多 简单。语法错误的实际原因在这里: 看来您正在尝试转换为,这是毫无意义的,因为您的参数已声明为已经。 这也行不通。我在这里引用手册: 为避免语法歧义,“字符串”类型的语法只能用于

  • 我正在尝试使用QueryDSL计算用户年龄和日期差。 但失败时出现此错误 谢谢

  • 问题内容: 有没有一种快速的方法来计算php中的日期差异?例如: 然后进行计算,$ date2减去$ date1 我读了php.net文档,但是没有运气。有快速的方法吗? 问题答案: strtotime会将您的日期字符串转换为Unix时间戳。(自UNIX时代以来的秒数。

  • 我的发票上有两个日期, 什么是得到这些日期之间的区别的最佳方法? 提前道谢!

  • 我需要得到以下两个日期之间的差异。两个日期都是字符串格式。

  • 问题内容: 我想得到两个Java Date对象之间的区别。我使用了Joda-Time库。但是问题是我得到的天数差异大于实际的天数差异。 这是我的代码段: 这是我的输出: 在这里,为什么将“ 06/22/2010”设为1月22日?有人遇到类似的问题吗? 帮我朋友..提前感谢.. 问题答案: 月份是MM 在您的情况下: DateFormat formatter = new SimpleDateForm