Java数据类型之时间
来源:互联网 发布:淘宝禁售商品管理规范 编辑:程序博客网 时间:2024/06/06 04:15
时间转换是在日常开发中已经遇到的。可以通过SimpleDateFormat类,该类用来对日期字符串进行解析和格式化输出。
String转Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); Date date = sdf.parse(dateString);
Date转String
String dateStr=(new SimpleDateFormat("yyyy-MM-dd")).format(ddate);
查阅了点资料,发现:
但要清楚的是,在我们的程序中应当尽少的创建SimpleDateFormat 实例,因为创建这么一个实例需要耗费很大的代价。会占用大量的内存。
如果为了节约开销,选择创建公用类方法。但此时又会遇到其他问题。因为SimpleDateFormat类是线程不安全的(SimpleDateFormat继承了DateFormat,在DateFormat中定义了一个protected属性的 Calendar类的对象:calendar。只是因为Calendar累的概念复杂,牵扯到时区与本地化等等,Jdk的实现中使用了成员变量来传递参数,这就造成在多线程的时候会出现错误)
避免这种问题:解决方法如下:
1.新建实例,但消耗空间。
2.同步SimpleDateFormat对象
public class DateSyncUtil { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static String formatDate(Date date)throws ParseException{ synchronized(sdf){ return sdf.format(date); } } public static Date parse(String strDate) throws ParseException{ synchronized(sdf){ return sdf.parse(strDate); } } }
3.使用ThreadLocal(暂未深入了解)
使用ThreadLocal, 也是将共享变量变为独享,线程独享肯定能比方法独享在并发环境中能减少不少创建对象的开销。如果对性能要求比较高的情况下,一般推荐使用这种方法。
阅读全文
0 0
- Java数据类型之时间
- Java数据类型之__Date数据类型
- Java数据类型之基本数据类型
- java数据类型之基本数据类型
- Java 数据类型之字符串
- Java 之数据类型
- java之数据类型
- Java之数据类型
- java学习之数据类型
- java学习之数据类型
- java数据类型之boolean
- Java基础之数据类型
- java基础之数据类型
- java入门之数据类型
- Java基础知识之数据类型
- java基础知识之数据类型
- JAVA基础知识之数据类型
- Java之基本数据类型
- redis cluster集群搭建与深入分析(1)
- C++完成日期类的实现——Date
- promise.then,process.nextTick, setTimeout 以及 setImmediate 的执行顺序
- H指数计算
- HihoCoder ——1305
- Java数据类型之时间
- maven 命令
- 介绍一个名为dragger的android控件
- 读取字符串中的数字
- 弱校胡策 银魂
- 单例模式应用之聊天界面
- 树状数组
- R语言数据挖掘(3)——关联分析
- Numpy学习笔记