【发布时间】:2021-04-18 08:45:05
【问题描述】:
我想得到今天和生日之间的天数:
今日代码:
Date currentDate = Calendar.getInstance().getTime();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String currentString = formatter.format(currentDate);
return currentString;
生日密码:
String date = dayOfMonth + "/" + month + "/" + year;
datePicker1.setText(date);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.MONTH,month +1);
calendar1.set(Calendar.YEAR,year);
calendar1.set(Calendar.DAY_OF_MONTH,dayOfMonth);
CharSequence datecharSequence = DateFormat.format("dd/MM/yyyy",calendar1);
计算代码:
try {
LocalDate date1 = LocalDate.now();
LocalDate date2 = usrBirthDate();
long diff = DAYS.between(date1, date2);
Annotation.setText((int) diff);
}
catch (Exception exception){
Toast.makeText(this, "Unable", Toast.LENGTH_SHORT).show();
}
【问题讨论】:
-
你用的是什么版本的java?如果它是 8+,您可能会受益于使用更新的日期\时间 API:docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html
-
顺便考虑扔掉长期过时且臭名昭著的麻烦
SimpleDateFormat和朋友。看看您是否可以使用 desugaring 或将 ThreeTenABP 添加到您的 Android 项目中,以便使用现代 Java 日期和时间 API java.time。使用起来感觉好多了。 -
欢迎来到 Stack Overflow。你的代码有效吗?请问你的问题是什么?为了我们可以帮助您,请指定所需的结果并将任何错误消息或错误结果粘贴到您的问题中。
-
不要尝试将日期处理为字符串。就像您将数字处理为
int或double,而不是String,将您的日期处理为LocalDate对象。 -
要找到更好的方法来找出差异,请参阅下面的 sanjeevRm 或my answer to the linked original question 的答案。除了使用所有错误的类之外,您做错了什么,请编辑您的问题并指定您的错误,我可以重新打开它,以便有人可以回答该部分。
标签: java android android-studio date calculation