当前位置: 首页 > news >正文

国外企业网站案例seo实战密码第三版pdf

国外企业网站案例,seo实战密码第三版pdf,国外公司建站系统,浦东网站建设价格SimpleDateFormat早期Java 日期格式化工具详解你提到的 SimpleDateFormat 通常指 Java 中的 java.text.SimpleDateFormat 类(注意首字母大写,可能是拼写笔误)。它是 Java 早期用于​​格式化(Date → 字符串)和解析&am…

SimpleDateFormat早期Java 日期格式化工具详解

你提到的 SimpleDateFormat 通常指 Java 中的 java.text.SimpleDateFormat 类(注意首字母大写,可能是拼写笔误)。它是 Java 早期用于​​格式化(Date → 字符串)和解析(字符串 → Date)日期时间​​的核心工具类,基于​​指定的模式字符串(Pattern)​​定义日期时间的输出或输入格式。

核心功能

SimpleDateFormat 的核心是通过​​模式字符串​​(由特定字符组成的模板)来定义日期时间的格式,支持两种操作:

  1. ​格式化(Format)​​:将 java.util.Date 对象转换为指定格式的字符串。
  2. ​解析(Parse)​​:将符合模式的字符串转换为 java.util.Date 对象。

模式字符串(Pattern)

模式字符串由​​预定义的字符​​组成,每个字符代表日期时间的不同部分。常见模式字符如下(区分大小写):

字符含义示例
y年(Year)yyyy → 2025(4位年);yy → 25(2位年)
M月(Month)MM → 08(2位月);M → 8(1位月);MMM → Aug(英文缩写);MMMM → August(英文全称)
d日(Day)dd → 04(2位日);d → 4(1位日)
H小时(24小时制,Hour)HH → 14(2位);H → 2(1位,如凌晨2点)
h小时(12小时制,Hour)hh → 02(下午2点);h → 2(1位)
m分钟(Minute)mm → 59(2位);m → 9(1位)
s秒(Second)ss → 59(2位);s → 9(1位)
S毫秒(Millisecond)SSS → 999(3位);S → 9(1位)
E星期(Day of Week)E → 周一;EEEE → 星期一(全称);EEE → 周一(缩写)
a上午/下午标记(AM/PM)a → 下午
z时区(Time Zone)z → GMT+8;zzzz → 中国标准时间

基础使用示例

1. 格式化(Date → 字符串)
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo {public static void main(String[] args) {// 创建 SimpleDateFormat 对象,指定模式SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS E a z");// 获取当前时间Date now = new Date();// 格式化为字符串String formatted = sdf.format(now);System.out.println("格式化结果: " + formatted); // 输出示例: 2025-08-04 14:52:59.123 周一 下午 GMT+8}
}
2. 解析(字符串 → Date)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class ParseDemo {public static void main(String[] args) {String dateStr = "2025-08-04 14:52:59.123";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");try {// 解析字符串为 Date 对象Date parsedDate = sdf.parse(dateStr);System.out.println("解析后的 Date: " + parsedDate); // 输出示例: Mon Aug 04 14:52:59 CST 2025(CST 是中国标准时间)} catch (ParseException e) {e.printStackTrace(); // 字符串格式与模式不匹配时会抛异常}}
}

关键注意事项

1. 线程不安全

SimpleDateFormat​不是线程安全的​​!它的内部状态(如日历对象 Calendar)会被多线程共享修改,导致数据混乱或异常。
​常见错误场景​​:在多线程中共享同一个 SimpleDateFormat 实例(例如作为类的静态变量)。
​解决方案​​:

  • 避免共享实例:每次使用时新建 SimpleDateFormat(性能较差)。
  • 使用 ThreadLocal 缓存:为每个线程分配独立的实例。
  • 升级到 Java 8+ 的 DateTimeFormatter(线程安全,推荐)。
2. 模式与字符串必须严格匹配

解析时,输入的字符串必须​​完全符合模式定义的格式​​(包括分隔符、位数、字符类型),否则会抛出 ParseException
​示例​​:

  • 模式 "yyyy-MM-dd" 只能解析 "2025-08-04",无法解析 "2025/08/04""2025年8月4日"
3. 时区和语言环境的影响
  • SimpleDateFormat 默认使用系统的时区和语言环境(如月份/星期的英文缩写)。
  • 若需指定时区或语言,可通过构造方法设置:
    // 指定时区为 UTC
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));// 指定语言环境为中文(用于月份/星期的中文显示)
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E", Locale.CHINA);

替代方案:Java 8+ 的 DateTimeFormatter

Java 8 引入的 java.time 包(如 LocalDateTimeZonedDateTime)提供了更现代的日期时间API,其中 DateTimeFormatter 完全替代了 SimpleDateFormat,且​​线程安全​​、设计更简洁。

​示例对比​​:

// Java 8+ 的 DateTimeFormatter(线程安全)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
LocalDateTime now = LocalDateTime.now();
String formatted = now.format(formatter); // 格式化LocalDateTime parsedDate = LocalDateTime.parse("2025-08-04 14:52:59.123", formatter); // 解析

总结

SimpleDateFormat 是 Java 早期的日期格式化工具,核心是通过模式字符串定义日期格式,但存在线程不安全的缺陷。在实际开发中:

  • 若使用 Java 8 及以上版本,优先选择 DateTimeFormatter
  • 若必须使用 SimpleDateFormat,需注意线程安全问题(如通过 ThreadLocal 或局部变量)。
http://www.dtcms.com/a/570576.html

相关文章:

  • 西安网站建设电话做招聘的网站有哪些
  • Ubuntu 配置临时 IP 和 VLAN
  • 如何给需求排序,确定优先级?
  • 网站开发前后端短视频营销国内外研究现状
  • 门户网站编辑流程做网站全是别人的链接
  • 智能网站系统html颜色代码
  • 做问卷调查有哪些网站网站建设后台编程
  • 4.2 路由器的组成
  • 可存储到文件里的通讯录contact
  • 【进阶版】基于Ollama和RAG,本地部署“懂业务”的大模型
  • SAP固定损耗数量或者固定用量,损耗率的方案
  • 建设部监理工程师网站有什么网站做微商
  • 做外贸网站要注意什么济南疾控最新发布
  • 【案例】UI 管理框架
  • 佛山网站建设外贸西安工商注册平台官网
  • 做网站编程要学什么中韩双语网站制作价格
  • 宁波专业的网站建设仕德伟做的网站
  • 商标设计网站猪八戒快速做效果图的网站叫什么
  • 推广网站哪家做的好文登区住房和城乡建设局网站
  • Oracle 数据库性能追踪与数据整合实践指南
  • 成都做网站公司一个完整的产品运营方案
  • 嘉兴做外贸网站的公司seo推广人员
  • 做网站需要知道哪些事情怎样做网络推广效果好视频
  • 建设网站程序忻州市中小企业局网站
  • 最长上升子序列(LIS)
  • 网站被禁止访问怎么打开小型的企业网站
  • Vue实现全局设置一个刷新按钮 只刷新当面路由页面 不跳转操作功能
  • 网站开发外包协议电子商务网站方案
  • 【IC】NoC设计入门 -- 验证
  • 如何在税局网站上做税种认定推广普通话手抄报简单漂亮