请注意,我不希望毫米来自时代.我想要当前时钟的毫秒数.
例如,我有这段代码.
Date date2 = new Date();
Long time2 = (long) (((((date2.getHours() * 60) + date2.getMinutes())* 60 ) + date2.getSeconds()) * 1000);
Run Code Online (Sandbox Code Playgroud)
有没有办法让日期达到毫秒?还有另一种方法吗?
注意: System.currentTimeMillis()从我所寻找的不是我的时代给我毫升.
在Ruby on Rails中,有一个功能允许你采取任何日期并打印出"很久以前"的样子.
例如:
8 minutes ago
8 hours ago
8 days ago
8 months ago
8 years ago
Run Code Online (Sandbox Code Playgroud)
在Java中有一种简单的方法吗?
我知道日期格式,例如
"yyyy-mm-dd"-which以格式2011-02-26
"yyyy-MMM-dd"显示日期 - 以格式显示日期2011-FEB-26
用于例如:
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy/MMM/dd ");
Run Code Online (Sandbox Code Playgroud)
我想要一种可以帮助我显示星期几的格式2011-02-MON.我只想用一个月和一年的字符显示星期几.你能告诉我这样的格式吗?
有没有办法,无论是在代码中还是在JVM参数中,都可以覆盖当前时间,如System.currentTimeMillis手动更改主机上的系统时钟所示?
一点背景:
我们有一个系统可以运行许多会计工作,这些工作围绕当前日期(即本月的第一天,一年中的第一天等)展开大部分逻辑.
不幸的是,很多遗留代码都会调用诸如new Date()or之类的函数,这些函数Calendar.getInstance()最终都会调用System.currentTimeMillis.
出于测试目的,我们现在仍然需要手动更新系统时钟来操作代码认为运行测试的时间和日期.
所以我的问题是:
有没有办法覆盖返回的内容System.currentTimeMillis?例如,告诉JVM在从该方法返回之前自动添加或减去一些偏移量?
提前致谢!
有没有一种简单的方法将LocalDate(用Java 8引入)转换为java.util.Date对象?
通过'简单',我的意思是比这更简单:
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎有点尴尬.
由于我们只对日期部分感兴趣,并且两个对象中都没有时区信息,为什么要明确引入时区?应该隐式采用午夜时间和系统默认时区进行转换.
我正在使用JodaTime 1.6.2.
我有一个LocalDate我需要转换为(Joda)LocalDateTime或java.sqlTimestampfor ormapping.
原因是我已经想出如何在a LocalDateTime和a 之间进行转换java.sql.Timestamp:
LocalDateTime ldt = new LocalDateTime();
DateTimeFormatter dtf = DateTimeFormatter.forPattern("yyyy-MM-dd HH:mm:ss");
Timestamp ts = Timestamp.valueOf(ldt.toString(dtf));
Run Code Online (Sandbox Code Playgroud)
所以,如果我可以相互转换LocalDate和LocalDateTime的话,我可以让继续转换java.sql.Timestamp.感谢任何正确方向的推动!
我有一个包含日期和时间信息的Java Date对象.我想写一个方法来切断时间信息,截断小时 - 分钟 - 秒,所以我只剩下日期.
输入示例:
2008-01-01 13:15:00
Run Code Online (Sandbox Code Playgroud)
预期产量:
2008-01-01 00:00:00
Run Code Online (Sandbox Code Playgroud)
你有小费吗?我尝试过这样的事情:
(timestamp / (24 * 60 * 60 * 1000)) * (24 * 60 * 60 * 1000)
Run Code Online (Sandbox Code Playgroud)
但是我遇到了时区的问题.
我有这个日期对象:
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm");
Date d1 = df.parse(interviewList.get(37).getTime());
Run Code Online (Sandbox Code Playgroud)
d1的值是 Fri Jan 07 17:40:00 PKT 2011
现在我想在上面的日期添加10分钟.
Calendar cal = Calendar.getInstance();
cal.setTime(d1);
cal.add(Calendar.MINUTE, 10);
String newTime = df.format(cal.getTime());
Run Code Online (Sandbox Code Playgroud)
newTime改变的价值2011-50-07 17:50
但应该是07-01-2011 17:50.
它正确添加分钟但它也会改变月份,不知道为什么!
Calendar rightNow = Calendar.getInstance();
String month = String.valueOf(rightNow.get(Calendar.MONTH));
Run Code Online (Sandbox Code Playgroud)
执行上面的代码片段后,month得到的值为10而不是11.为什么?
java ×10
date ×7
time ×3
calendar ×2
timestamp ×2
datediff ×1
formatting ×1
java-8 ×1
java-time ×1
jodatime ×1
jvm ×1
milliseconds ×1
string ×1
systemtime ×1
testing ×1