我使用以下代码获取当前日期(格式为12/31/1999,即mm/dd/yyyy):
Textview txtViewData;
txtViewDate.setText("Today is " +
android.text.format.DateFormat.getDateFormat(this).format(new Date()));
Run Code Online (Sandbox Code Playgroud)
我的格式为另一个日期:2010-08-25(即yyyy/mm/dd),
所以我想找出日期的天数之间的差异,我如何找到天数的差异?
(换句话说,我想找出CURRENT DATE - yyyy/mm/dd格式化日期之间的区别)
我有一个SpringBoot应用程序.使用Spring Initializer,嵌入式Tomcat,Thymeleaf模板引擎和包作为可执行的JAR文件.
我有一个具有2个属性的域对象(initDate,endDate).我想创建2个转换器来处理mySQL DB
@Convert(converter = LocalDateTimeAttributeConverter.class)
private LocalDateTime initDate;
@Convert(converter = ZonedDateTimeAttributeConverter.class)
private ZonedDateTime endDate;
Run Code Online (Sandbox Code Playgroud)
转换器1(可以)
@Converter
public class LocalDateTimeAttributeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime localDateTime) {
return (localDateTime == null ? null : Timestamp.valueOf(localDateTime));
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp sqlTimestamp) {
return (sqlTimestamp == null ? null : sqlTimestamp.toLocalDateTime());
}
}
Run Code Online (Sandbox Code Playgroud)
这是我想要创建的那个
@Converter
public class ZonedDateTimeAttributeConverter implements AttributeConverter<ZonedDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(ZonedDateTime zoneDateTime) {
return (zoneDateTime == null ? null : Timestamp.valueOf(zoneDateTime));
} …
Run Code Online (Sandbox Code Playgroud) 如果我用java.util.Date
的toInstant()
上这恰好是一个变量java.sql.Date
,我得到一个UnsupportedOperationException
。
try {
java.util.Date input = new java.sql.Date(System.currentTimeMillis());
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
} catch (UnsupportedOperationException e) {
// grrr!
}
Run Code Online (Sandbox Code Playgroud)
的java.util.Date
,我很担心经由传统API的MySQL数据库来自一个日期字段,而实际上是一个java.sql.Date
。
现在,以下相关问题都很有趣:
UnsupportedOperationException-为什么不能在java.sql.Date上调用toInstant()?
将java.util.Date转换为java.time.LocalDate
LocalDate到java.util.Date的转换,反之亦然?
但它们没有提供任何截断a的优雅方法java.util.Date
来摆脱时间成分并获得Java 8 LocalDate
。
我承认存在一个问题,一个时区中的同一时刻可能与另一时区中的同一时刻的日期不同。
我怀疑解决方案将涉及java.util.Calendar,但与其设计我自己的解决方案,不如先确定其他人已经做的事情。
我希望找到比这短的东西:
Run Code Online (Sandbox Code Playgroud)Date date = new Date(); // timestamp now Calendar cal = Calendar.getInstance(); // get calendar instance cal.setTime(date); // set cal to date cal.set(Calendar.HOUR_OF_DAY, 0); // set hour to midnight cal.set(Calendar.MINUTE, 0); …
将Joda时间迁移到Java 8
乔达:
UserObject user = new UserObject()
user.setCreatedAt(new DateTime(rs.getTimestamp("columnName")));`
Run Code Online (Sandbox Code Playgroud)
迁移至Java 8
这是我的代码;它确实可以编译;我怀疑它是否有效:
ZonedDateTime.ofInstant(rs.getTimestamp("columnName").toLocalDateTime().toInstant(ZoneOffset.UTC),ZoneId.of("UTC")));
Run Code Online (Sandbox Code Playgroud)
在某些情况下,日期是错误的。有什么建议吗?
我想比较两个对象的日期部分java.util.Date
。我怎样才能实现这个目标?我不想分别比较日期、月份和年份。
提前致谢!
我需要每晚午夜运行服务.我想使用AlarmManager来做到这一点.
你能给我一些如何让它正常工作的指导吗?
alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, System.currentTimeMillis(), AlarmManager.INTERNAL_DAY, serviceIntent);
Run Code Online (Sandbox Code Playgroud)
也许我需要使用Calendar对象来指定时间?谢谢你的帮助!