java返回星期几而不是月份
注:是的,我意识到使用简单的日期格式可能比我目前的系统更好,但我发现这比使用简单的日期格式更容易 此代码只需返回保存为dd/mm/yyyy的日期,对于贷款日期为2013年1月1日,它会返回该日期,但是对于dueBack日期,它返回的是2013年4月22日,它应该返回的是2013年1月22日java返回星期几而不是月份,java,date,gregorian-calendar,Java,Date,Gregorian Calendar,注:是的,我意识到使用简单的日期格式可能比我目前的系统更好,但我发现这比使用简单的日期格式更容易 此代码只需返回保存为dd/mm/yyyy的日期,对于贷款日期为2013年1月1日,它会返回该日期,但是对于dueBack日期,它返回的是2013年4月22日,它应该返回的是2013年1月22日 public String returnLoan() { String dLoan = loan.get(loan.DAY_OF_MONTH) + "/"
public String returnLoan()
{
String dLoan = loan.get(loan.DAY_OF_MONTH) + "/"
+ loan.get(loan.MONTH + 1) + "/"
+ loan.get(loan.YEAR);
return dLoan;
}
public String returnDueBack()
{
String dDueBack = dueBack.get(dueBack.DAY_OF_MONTH) + "/"
+ dueBack.get(dueBack.MONTH + 1) + "/"
+ dueBack.get(dueBack.YEAR);
return dDueBack;
}
作为参考,这是构造函数
public Loan()
{
memID = 0;
bookID = 0;
loan = new GregorianCalendar(2013, 0, 1);
dueBack = new GregorianCalendar(2013, 0, 22);
returned = false;
}
非常感谢您的帮助。代替
dueBack.get(dueBack.MONTH + 1)
使用
而不是
dueBack.get(dueBack.MONTH + 1)
使用
tl;博士
2013-05-22
java.time
更易于使用现代java.time类
定义与输入匹配的格式模式
String input = "22/4/2013" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "d/M/uuuu" ) ;
解析为LocalDate
,一个只包含日期的值,不包含一天中的时间和时区
LocalDate ld = LocalDate.parse( input , f ) ;
加上一个月
LocalDate ldNextMonth = ld.plusMonths( 1 ) ;
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类
从哪里获得java.time类
- 然后
- 内置的李>
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(tl;dr
2013-05-22
java.time
更易于使用现代java.time类
定义与输入匹配的格式模式
解析为String input = "22/4/2013" ; DateTimeFormatter f = DateTimeFormatter.ofPattern( "d/M/uuuu" ) ;
,一个只包含日期的值,不包含一天中的时间和时区LocalDate
加上一个月LocalDate ld = LocalDate.parse( input , f ) ;
LocalDate ldNextMonth = ld.plusMonths( 1 ) ;
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅.和搜索堆栈溢出以获取许多示例和解释。规范为 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
classes 从哪里获得java.time类java.sql.*
- 然后
- 内置的
- 标准JavaAPI的一部分,带有捆绑实现
- Java9添加了一些次要功能和修复
- 及
- 大部分java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期的Android(他们需要一个新的日历系统,该系统使用枚举代替常量来处理这些事情these@Cruncher在Java 8中使用新的软件包会变得更好。@Jesper看起来不错。奇怪的是,花了这么长时间才得到一个像样的时间包。当然Jon Skeet会对我大喊大叫,告诉我这是真的没有那么容易。@Cruncher新的
包基于流行的库。如果你不能使用java 8,那么如果你需要处理日期和时间,我强烈建议使用Joda time。它的API比java.time
和java.util.Date
提供的要好得多。他们需要一个新的日历系统它使用枚举来处理这些事情,而不是常量。不太容易出现诸如these@Cruncher有了新的软件包,Java 8会变得更好。@Jesper它看起来不错。奇怪的是,花了这么长时间才有了一个像样的时间包。当然Jon Skeet会对我大喊大叫,告诉我这真的没那么容易。@Cruncher the新的java.util.Calendar
包基于流行的库。如果您不能使用java 8,那么如果您需要处理日期和时间,我强烈建议使用Joda time。它的API比java.time
和java.util.Date
提供的要好得多。“注意:是的,我意识到使用简单的日期格式可能比我目前的系统更好,但我发现这比使用简单的日期格式更容易。“这似乎是一个学习的好时机,而不是绕过这个问题。特别是,你的代码没有进行0填充-而如果你只是创建一个模式为java.util.Calendar
的dd/MM/yyyy
,它将非常简单。而且你不会有当前的问题。你怎么能说“当前系统”当当前系统还不能工作时,使用SimpleDataFormat
比使用SimpleDateFormat
SimpleDateFormat容易吗?“注意:是的,我意识到使用简单日期格式可能比我当前的系统要好,但我发现这比使用简单日期格式容易。”这似乎是一个学习的好时机,而不是绕过这个问题。特别是,你的代码没有进行0填充-而如果你只是创建一个模式为
的dd/MM/yyyy
,它将非常简单地工作。而且你不会有当前的问题。你怎么能说“当前系统”当当前系统尚未工作时,是否比使用SimpleDataFormat
更容易?SimpleDataFormat
- 然后