我无法使用 Java 中的日历方法进行数学运算,但得到了“java:二元运算符“-”的错误操作数类型”错误
我正在尝试编写一个代码来告诉我还剩多少天可以上大学,但我无法使用当前日期来做到这一点。我可以通过设置日期轻松完成,但我想要当前日期,所以我必须使用日历方法,但不能使用它进行数学计算。 我的代码:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar calendar = Calendar.getInstance();
Date start = sdf.parse("10/06/2022");
System.out.println(start - calendar.getTime());
I'm trying to make a code that tells me how many days left for me to go college, but I am not able to do it with the current date. I can easily make it by setting a date, but I want the current date, so I have to use the calendar method, but can't do math using it.
My code:
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar calendar = Calendar.getInstance();
Date start = sdf.parse("10/06/2022");
System.out.println(start - calendar.getTime());
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
tl;dr
详细信息
您正在使用可怕的日期时间类,这些类在几年前已被 JSR 310 中定义的现代 java.time 类取代。切勿使用
Date
/日历
。此外,您还尝试使用日期时间类来表示具有 UTC 时间(偏移量为零)的日期来保存仅日期值。方钉,圆孔。
确定今天的日期。这需要一个时区。对于任何特定时刻,全球各地的日期因时区而异。
使用
java.time.temporal.ChronoUnit
。请参阅在 IdeOne.com 上实时运行的代码。
提示:了解用于将日期时间值交换为文本的 ISO 8601 标准。
tl;dr
Details
You are using terrible date-time classes that were years ago supplanted by the modern java.time classes defined in JSR 310. Never use
Date
/Calendar
.Also, you are attempting to use a date-time class representing a date with time-of-day as seen in UTC (offset of zero) to hold a date-only value. Square peg, round hole.
Determine today's date. That requires a time zone. For any given moment, the date varies around the globe by time zone.
Calculate elapsed time using
java.time.temporal.ChronoUnit
.See this code run live at IdeOne.com.
Tip: Learn about the ISO 8601 standard for exchanging date-time values as text.
你可以试试这个
You can try this