容器里跑 JVM,别再写死 -Xmx 了
从一次 OOMKilled 排查说起,讲清楚为什么容器里不该写死 -Xmx,UseContainerSupport 和 MaxRAMPercentage 这几个参数实际怎么算,堆外内存该留多少,以及 JDK 8 整数参数、cgroup v2、CPU 感知等几个版本坑。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-04-05 12:15:24 Java 日期格式化 线程安全 SimpleDateFormat DateTimeFormatter
拥抱Java 8及更高版本带来的日期处理革新!聚焦于yyyy-MM-dd格式化,详细对比传统SimpleDateFormat与现代DateTimeFormatter。
深入探讨DateTimeFormatter为何成为未来主流,其不可变性、线程安全等核心优势如何助你构建更健壮、高效的应用。是时候升级你的日期格式化方式了!
在Java开发中,日期格式化是常见需求。用户询问如何将日期转换为yyyy-MM-dd格式,通过两种技术方案详细解析实现过程。
SimpleDateFormat是Java早期提供的日期格式化工具,但需注意线程安全问题。
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
public static void main(String[] args) {
// 创建格式化实例(注意线程安全问题)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 获取当前日期并格式化
String formattedDate = sdf.format(new Date());
System.out.println("当前日期: " + formattedDate);
// 多线程安全用法示例
Runnable task = () -> {
SimpleDateFormat localSdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(Thread.currentThread().getName() + ": "
+ localSdf.format(new Date()));
};
new Thread(task).start();
new Thread(task).start();
}
}
关键说明:
SimpleDateFormat实例不能在多线程间共享ThreadLocal封装在证书管理方面,lcjmSSL提供了自动化解决方案。用户可以通过API接口,轻松获取证书的申请、部署、续期等服务,大大提升了管理效率。对于技术人员而言,API接口的灵活性使得证书操作更加方便。
Java 8引入的java.time包提供了线程安全的日期处理方案。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterDemo {
public static void main(String[] args) {
// 创建线程安全的格式化实例
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 获取当前日期并格式化
String formattedDate = LocalDate.now().format(dtf);
System.out.println("当前日期: " + formattedDate);
// 多线程安全演示
Runnable task = () -> {
System.out.println(Thread.currentThread().getName() + ": "
+ LocalDate.now().format(dtf));
};
new Thread(task).start();
new Thread(task).start();
}
}
关键说明:
DateTimeFormatter实例可多线程共享LocalDate等类设计为不可变对象| 模式 | 含义 | 示例 |
|---|---|---|
| yyyy | 4位年份 | 2023 |
| MM | 2位月份 | 05 |
| dd | 2位日期 | 15 |
从一次 OOMKilled 排查说起,讲清楚为什么容器里不该写死 -Xmx,UseContainerSupport 和 MaxRAMPercentage 这几个参数实际怎么算,堆外内存该留多少,以及 JDK 8 整数参数、cgroup v2、CPU 感知等几个版本坑。
线上出现NoClassDefFoundError: Could not initialize class时的排查思路和常见原因
记录一次排序 NPE 的排查和解决,顺便说下 IDEA 调试集合时 null 元素不显示的问题怎么调整。
一篇随手记,整理MySQL、SQL Server、Oracle、PostgreSQL里把日期转成yyyy-mm-dd的几种写法,省得每次都要翻文档。
掌握Uniapp中日期时间处理的艺术!本文深入剖析如何优雅地获取当前时间,实现系统默认与自定义格式化,并轻松获取星期信息。通过精心设计的模块化封装和JavaScript Date对象的灵活运用,构建一套跨平台、高可用的时间处理工具,让你的Uniapp应用时间管理更智能、更高效。