Java 比较日期(之前和之后),类型字符串的方法before(String)未定义
我想用以下代码比较日期与之前和之后 我有两个变量Java 比较日期(之前和之后),类型字符串的方法before(String)未定义,java,Java,我想用以下代码比较日期与之前和之后 我有两个变量varYEAR和varYEARDAY,我想将它们与“before”和“after”进行比较 如果使用Eclipse保存代码,我会收到以下消息: 类型字符串的(字符串)之前的方法未定义 对不起,我是java的新手:-) 你不必把日期转换成春天。日期有前后两种方法,可以相互比较。 你可以用 如果(日期2.之后(日期1))或根据您的要求使用日期2.之前(日期1) 你可以找到很多信息,因为这个问题以前被问过 您只需使用方法。compareTo(Strin
varYEAR
和varYEARDAY
,我想将它们与“before”和“after”进行比较
如果使用Eclipse保存代码,我会收到以下消息:
类型字符串的(字符串)之前的方法未定义
对不起,我是java的新手:-)
你不必把日期转换成春天。日期有前后两种方法,可以相互比较。 你可以用 如果(日期2.之后(日期1))或根据您的要求使用日期2.之前(日期1) 你可以找到很多信息,因为这个问题以前被问过
- 您只需使用方法
。compareTo(String)
date1.compareTo(date2)
返回
- 但是在java中有更有效的方法来比较日期:
typedate
Date
。
我猜您的参数varYEAR
和varYEARDAY
已经是Date
类型了。
方法.after()和.before()已经实现,并提供您要查找的结果
varYEAR.after(varYEARDAY); // Boolean
- 如果您的参数不是
类型,我们将需要它们的类型为您提供好的答案。 您仍然可以用以毫秒为单位的字符串或长字符串来构造日期。Date
Date-date1=新的SimpleDateFormat(您的\格式).parse(您的\日期\在\字符串中)代码>
Date date1=新日期(您的日期以毫秒为单位)
- 如果要使用日历值(2016年5月1日)生成日期,应使用
类型。(具有相同的方法gregorianalendar
和.after()
)李>.before()
GregorianCalendar date1 = new GregorianCalendar(int year, int month, int day_of_month(1-31))
享受编码乐趣。您的问题不清楚,无法记录输入的类型和示例值 如果给定变量的名称,您最初将以下内容作为输入:
- 年数
- 年加上一年中的某一天(1-366)
int year = 2010;
LocalDate ld = LocalDate.ofYearDay( 2016 , 234 );
if ( ld.getYear() < year ) {
…
}
字符串不是日期,也不应该将其视为一个。如果要比较
String
而不是date
对象,请尝试:if(varYEARDAY.before(varYEARDAY)){…}
如果我不将其定义为字符串,则保存它时的消息是相同的,这就是我想知道的:@kthink请尽可能简单地保存问题的代码。删除所有不相关的行。@k思考您的两个输入变量到底是什么?您最初有年份号和年份+日期吗?
int year = 2010;
LocalDate ld = LocalDate.ofYearDay( 2016 , 234 );
if ( ld.getYear() < year ) {
…
}
LocalDate ld = LocalDate.parse( "2016-234" );