Java多线程环境下SimpleDateFormat类的安全转换方法
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"Java多线程环境下SimpleDateFormat类的安全转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java多线程环境下S
千家信息网最后更新 2026年11月01日Java多线程环境下SimpleDateFormat类的安全转换方法
本篇内容主要讲解"Java多线程环境下SimpleDateFormat类的安全转换方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java多线程环境下SimpleDateFormat类的安全转换方法"吧!
一、SimpleDateFormat类
package state;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * SimpleDateFormat类负责日期的转换与格式化 * 解决SimpleDateFormat类多线程环境下转换错误问题 * @author zc * */public class SimpleDateFormatThread extends Thread{ private SimpleDateFormat sdf; private String dateString; public SimpleDateFormatThread(SimpleDateFormat sdf,String dateString) { super(); this.sdf =sdf; this.dateString =dateString; } @Override public void run() { try { //System.out.println(dateString); //刚开始日期格式设置错误为YYYY-MM-dd Date date =DateTools.getSimpleDateFormat("yyyy-MM-dd").parse(dateString); // System.out.println(date); String newDateString =DateTools.getSimpleDateFormat("yyyy-MM-dd").format(date).toString(); if(!newDateString.equals(dateString)) { System.out.println("ThreadName="+this.getName()+"报错日期"+dateString+" 转换日期"+newDateString); }else { System.out.println("ThreadName="+this.getName()+"日期"+dateString+" 转换日期"+newDateString); } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); String[] dateStringArray =new String[]{ "2020-02-05","2020-02-06","2020-02-07","2020-02-08" }; SimpleDateFormatThread []threadArray= new SimpleDateFormatThread[4]; for(int i=0;i<4;i++) { threadArray[i] =new SimpleDateFormatThread(sdf,dateStringArray[i]); } for(int i=0;i<4;i++) { threadArray[i].start(); } }}class DateTools{ //ThreadLocal能使线程绑定到指定的对象 private static ThreadLocal t = new ThreadLocal(); public static SimpleDateFormat getSimpleDateFormat(String datePattern) { SimpleDateFormat sdf=null; sdf =t.get(); if(sdf==null) { sdf =new SimpleDateFormat(datePattern); t.set(sdf); } return sdf; }} 二、线程状态和线程组
(2)线程5状态//NEW 尚未启动的线程//RUNNABLE Java虚拟机中执行的线程//TERMINATED 已经退出的线程//BLOCKED 阻塞受监视的线程//WAITING 无限等待另一个线程//TIMED_WAITING 等待另一个线程指定时间package state;/** * 线程中状态和线程组 * @author zc * */public class MyThread extends Thread{ //NEW //RUNNABLE //TERMINATED //BLOCKED //WAITING //TIMED_WAITING public MyThread() { System.out.println("构造方法中的状态: "+Thread.currentThread().getState()); } @Override public void run() { System.out.println("run方法中的状态:"+Thread.currentThread().getState()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { MyThread myThread = new MyThread(); System.out.println("main方法中的状态1 "+ myThread.getState()); Thread t1 = new Thread(); Thread t2 = new Thread(); ThreadGroup group =new ThreadGroup("左氏线程组"); Thread t3 = new Thread(group,t1); Thread t4 = new Thread(group,t2); t3.start(); t4.start(); System.out.println("活动的线程数量为: " +group.activeCount()); System.out.println("线程组的名称为: "+group.getName()); try { myThread.start(); Thread.sleep(1000); System.out.println("main方法中的状态2 "+ myThread.getState()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}到此,相信大家对"Java多线程环境下SimpleDateFormat类的安全转换方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
线程
方法
状态
日期
环境
安全
内容
格式
错误
学习
实用
更深
兴趣
名称
实用性
实际
对象
尚未
操作简单
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
蓝思科技飞鸽互联网
互联网与科技金融数据
互联网科技英文
互联网科技小贷
互联网科技小额贷款
互联网科技公司介绍
佩信高科技互联网
常德市电业局互联网科技部
黑科技闪耀互联网之光
浙南科技城互联网大厦建设工程
如何创新互联网科技
翼展科技 首家互联网医院
伊宁互联网科技做什么的
上海钢联属于互联网科技股吗
中国互联网有什么科技
广州有谷有贝互联网科技有限公司
互联网科技收购价值
深圳互联网科技园地址
上海旺乐尼互联网科技有限公司
互联网科技公司华为
互联网科技有限公司图片
互联网科技寓意
互联网科技创新服务
厦门比较好的科技互联网公司
互联网科技扶贫时间
陕西云淼互联网科技公司
九思连强互联网电子科技有限公司
宁波跨境商互联网科技有限公司
米泉互联网科技专业怎么样