在Java中获取当前日期/时间的最佳方法是什么?
当前回答
我会继续回答这个问题,因为当我有同样的问题时,这就是我所需要的:
Date currentDate = new Date(System.currentTimeMillis());
currentDate现在是Java date对象中的当前日期。
其他回答
我创建了这种方法,它对我很有用。。。
public String GetDay() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd")));
}
public String GetNameOfTheDay() {
return String.valueOf(LocalDateTime.now().getDayOfWeek());
}
public String GetMonth() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM")));
}
public String GetNameOfTheMonth() {
return String.valueOf(LocalDateTime.now().getMonth());
}
public String GetYear() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy")));
}
public boolean isLeapYear(long year) {
return Year.isLeap(year);
}
public String GetDate() {
return GetDay() + "/" + GetMonth() + "/" + GetYear();
}
public String Get12HHour() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("hh")));
}
public String Get24HHour() {
return String.valueOf(LocalDateTime.now().getHour());
}
public String GetMinutes() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("mm")));
}
public String GetSeconds() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("ss")));
}
public String Get24HTime() {
return Get24HHour() + ":" + GetMinutes();
}
public String Get24HFullTime() {
return Get24HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
public String Get12HTime() {
return Get12HHour() + ":" + GetMinutes();
}
public String Get12HFullTime() {
return Get12HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
有许多不同的方法:
System.currentTimeMillis()日期日历
这取决于您想要的日期/时间形式:
如果您希望日期/时间是一个单一的数值,那么System.currentTimeMillis()会给出该值,表示为UNIX纪元后的毫秒数(Java long)。该值是UTC时间点的增量,与本地时区1无关。如果您希望日期/时间以允许您以数字方式访问组件(年、月等)的形式显示,则可以使用以下选项之一:new Date()为您提供了一个用当前日期/时间初始化的Date对象。问题是DateAPI方法大多有缺陷。。。并且已弃用。Calendar.getInstance()使用默认的Locale和TimeZone为您提供一个用当前日期/时间初始化的Calendar对象。其他重载允许您使用特定的区域设置和/或时区。日历工作。。。但是API仍然很麻烦。neworg.joda.time.DateTime()为您提供了一个使用默认时区和年表用当前日期/时间初始化的joda时间对象。还有很多其他Joda替代品。。。太多了,这里无法描述。(但请注意,有些人报告Joda time存在性能问题。https://stackoverflow.com/questions/6280829.)在Java 8中,调用Java.time.LocalDateTime.now()和Java.time.ZonedDateTime.nnow()将为当前日期/时间提供表示2。
在Java8之前,大多数了解这些事情的人都推荐Joda time拥有(迄今为止)最好的JavaAPI来完成涉及时间点和持续时间计算的事情。
对于Java 8和更高版本,建议使用标准Java.time包。Joda时间现在被认为是“过时的”,Joda维护人员建议人们迁移。
1-System.currentTimeMillis()提供“系统”时间。虽然通常将系统时钟设置为(标称)UTC,但本地UTC时钟和真实UTC之间会存在差异(增量)。增量的大小取决于系统时钟与UTC同步的程度(以及频率)。2-请注意,LocalDateTime不包括时区。正如javadoc所说:“如果没有偏移量或时区等附加信息,它就不能表示时间线上的某个时刻。”注意:如果不迁移,Java8代码不会损坏,但Joda代码库最终可能会停止获取错误修复和其他补丁。截至2020-02年,Joda的官方“生命终结”尚未宣布,Joda API也未被标记为已弃用。
java.util.Date date = new java.util.Date();
它会在实例化时自动填充。
Use:
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp );
(它起作用了。)
推荐文章
- Java构造函数继承
- 如何在Java中将int[]转换为Integer[] ?
- 你能解释一下流的概念吗?
- 导致java.lang.VerifyError错误的原因
- 如何在Java中监控计算机的CPU、内存和磁盘使用情况?
- 如何设置超时在改造库?
- java lambda可以有一个以上的参数吗?
- HashMap -获取第一个键值
- 使用Jackson将JSON字符串转换为漂亮的打印JSON输出
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- SQL Developer只返回日期,而不是时间。我怎么解决这个问题?
- Javadoc @see或{@link}?
- 在准备语句中使用“like”通配符
- Android Eclipse -无法找到*.apk
- 在mongodb中存储日期/时间的最佳方法