java 日期格式化为yyyy-mm-dd
时间: 2023-07-19 15:14:40 浏览: 86
你可以使用Java中的SimpleDateFormat类来格式化日期。具体实现代码如下:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = dateFormat.format(date);
System.out.println("Formatted date: " + formattedDate);
}
}
```
输出结果如下:
```
Formatted date: 2021-08-24
```
其中,SimpleDateFormat类的构造函数中的参数 "yyyy-MM-dd" 就是日期格式化的模板,具体含义如下:
- yyyy:年份,例如:2021
- MM:月份,例如:08(注意:这里是大写的"M",小写的"m"代表分钟)
- dd:日期,例如:24
你可以根据需要修改格式化模板来输出不同的日期格式。
相关问题
Java日期格式转yyyy-MM-dd 为 日期时间格式yyyy-MM-dd HH:mm:ss
在Java中,如果你有一个日期对象并想将其转换为"yyyy-MM-dd HH:mm:ss"这样的日期时间格式,你可以使用`SimpleDateFormat`类来进行格式化。首先,你需要创建一个`SimpleDateFormat`对象,指定目标格式,然后使用`format()`方法将日期转换为字符串。
以下是一个示例:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 创建一个Date对象(这里假设你已经有了一个date变量)
Date date = ...;
// 定义日期格式和时间格式的对象
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateTimeFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 使用formatter获取年月日部分
String yearMonthDay = formatter.format(date);
// 将yearMonthDay合并到完整的日期时间格式中
String formattedDateTime = dateTimeFormatter.format(new Date(yearMonthDay + " 00:00:00"));
System.out.println(formattedDateTime);
}
}
```
在这个例子中,我们先将原始日期格式化为"yyyy-MM-dd",然后创建一个新的时间部分"00:00:00",最后将两者结合在一起。
java 当前日期 格式化为yyyy-mm-dd 保证线程安全
以下是将当前日期格式化为 "yyyy-MM-dd" 格式的 Java 代码示例,并保证线程安全:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String formattedDate = simpleDateFormat.format(new Date());
System.out.println(formattedDate);
}
}
```
输出结果类似于:
```
2021-10-08
```
需要注意的是,`SimpleDateFormat` 并不是线程安全的,因此需要进行同步处理。可以使用 `ThreadLocal` 来实现线程安全,示例代码如下:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
private static final ThreadLocal<SimpleDateFormat> dateFormatThreadLocal = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd"));
public static void main(String[] args) {
String formattedDate = dateFormatThreadLocal.get().format(new Date());
System.out.println(formattedDate);
}
}
```
这样每个线程都会拥有一个独立的 `SimpleDateFormat` 实例,避免了线程安全问题。
阅读全文