`
小网客
  • 浏览: 1243988 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对DateFormat的操作之joda-time

    博客分类:
  • Java
 
阅读更多

采用的版本如下:

Java代码  收藏代码
  1. joda-time-2.1.jar

 

基于joda-time进行date format的操作代码如下:

		Calendar calendar = Calendar.getInstance();
		calendar.setTimeInMillis(System.currentTimeMillis());
		String pattern = "yyyy-MM-dd hh:mm:ss";

		DateTime dateTime = new DateTime(calendar);
		String dateStr = dateTime.toString(pattern);
		LOGGER.info("dateStr:" + dateStr);

		DateTime date = DateTimeFormat.forPattern(pattern).parseDateTime(dateStr);
		LOGGER.info("date:" + date.toDate());

根据pattern创建DateTimeFormatter :

    public static DateTimeFormatter forPattern(String s)
    {
        return createFormatterForPattern(s);
    }

 具体的创建过程:

    private static DateTimeFormatter createFormatterForPattern(String s)
    {
        if(s == null || s.length() == 0)
            throw new IllegalArgumentException("Invalid pattern specification");
        DateTimeFormatter datetimeformatter = null;
        synchronized(cPatternedCache)
        {
            datetimeformatter = (DateTimeFormatter)cPatternedCache.get(s);
            if(datetimeformatter == null)
            {
                DateTimeFormatterBuilder datetimeformatterbuilder = new DateTimeFormatterBuilder();
                parsePatternTo(datetimeformatterbuilder, s);
                datetimeformatter = datetimeformatterbuilder.toFormatter();
                cPatternedCache.put(s, datetimeformatter);
            }
        }
        return datetimeformatter;
    }

 也就是先根据pattern从map中获取,如果没有的话那么build

那么我们看DateTimeFormatter是否线程安全的?

    private final DateTimePrinter iPrinter;
    private final DateTimeParser iParser;
    private final Locale iLocale;
    private final boolean iOffsetParsed;
    private final Chronology iChrono;
    private final DateTimeZone iZone;
    private final Integer iPivotYear;
    private final int iDefaultYear;
 没有static 符合线程安全条件,那么同样是线程安全的
1
1
分享到:
评论
4 楼 小网客 2013-01-15  
有道理只要多线程访问的时候只有一份且同步修改 才是不安全的
zhukewen_java 写道
小网客 写道
zhukewen_java 写道
引用
没有static 符合线程安全条件,那么同样是线程安全的

这样的判断有点草率,没有static并不能说明是线程安全的。

那你举个例子说明非static的并且是线程不安全的"_"

SimpleDateFormatter

3 楼 zhukewen_java 2013-01-14  
小网客 写道
zhukewen_java 写道
引用
没有static 符合线程安全条件,那么同样是线程安全的

这样的判断有点草率,没有static并不能说明是线程安全的。

那你举个例子说明非static的并且是线程不安全的"_"

SimpleDateFormatter
2 楼 小网客 2013-01-14  
zhukewen_java 写道
引用
没有static 符合线程安全条件,那么同样是线程安全的

这样的判断有点草率,没有static并不能说明是线程安全的。

那你举个例子说明非static的并且是线程不安全的"_"
1 楼 zhukewen_java 2013-01-10  
引用
没有static 符合线程安全条件,那么同样是线程安全的

这样的判断有点草率,没有static并不能说明是线程安全的。

相关推荐

    js dateformat yyyy-MM-dd形式

    这两种库都大大简化了日期格式化的操作,特别是在处理各种复杂格式时。 此外,JavaScript ES2015引入了模板字符串,使字符串拼接更加简洁。如果使用模板字符串,上述示例可以写得更加直观: ```javascript var ...

    DateFormat:日期格式--javascript js

    DateFormat Date Format是一个日期格式化的库. 提供的全局的接口DateFormat(DF).支持中文、英文 日期格式化 DateFormat 使用: 格式化依据的字符串关键字 可以是一下字符组合: y M d H h a ap A AP m s z % 例如: ...

    Node.js-dateformat-一个优秀的node.js日期格化包

    在项目 `felixge-node-dateformat-4944c41` 中,我们可以找到该模块的源代码和相关资源。 在 Node.js 中,原始的 `Date` 对象虽然能进行基本的日期操作,但其格式化的功能相对较弱。`dateformat` 模块则弥补了这一...

    DateFormat.java

    用于转换时间格式, 使用步骤:一. DateFormat dateFormat = new DateFormat();... String timeString=dateFormat.DateFormat("yyyy-MM-dd HH:m:s",time); 参数1:填写需要的格式 参数2:填写需要改变的时间

    node-dateformat:一个用于Steven Levithan出色的dateFormat()函数的node.js包

    摘自史蒂文(Steven)的帖子,对其进行了修改以匹配上面列出的修改: var dateFormat = require ( "dateformat" ) ; var now = new Date ( ) ; // Basic usage dateFormat ( now , "dddd, mmmm dS, yyyy, h:MM:ss ...

    Java多线程编程中使用DateFormat类

    1. **同步**:最直接的方法是在`convert`方法中对`format`对象使用`synchronized`关键字,确保同一时间只有一个线程能执行格式化操作。这样虽然可以保证线程安全,但可能会增加线程之间的等待时间,从而降低并发性能...

    intl-date-time:Laravel Nova 的国际日期时间

    composer require techouse/intl-date-time 用法 API 改编自 。 该模块本身提供了一些可选配置: 语言环境-可选-设置模块的语言环境。 如果你不这样做,它会自动使用你的应用程序的config('app.locale') 。 如果您...

    jquery.datepicker-zh-CN.js

    jquery datepicker 的中文包 调用方法 <script src="./public/js/jquery-ui-1.10.3.min.js"> ...$( "#datepicker" ).datepicker({dateFormat:"yy-mm-dd",regional:$.datepicker.regional['zh-CN']});

    jquery-dateFormat, 使用JavaScript格式化日期输出的jQuery插件.zip

    jquery-dateFormat, 使用JavaScript格式化日期输出的jQuery插件 使用JavaScript格式输出日期输出的jQuery dateformat插件- 拥有的,jQuery是最小的日期格式库。 ! 安装下载最新的jquery.dateFormat.js 或者 jquery....

    sql-dateformat.rar_DateFormat_datEformat SQL_sql中dateformat_时间格式

    在SQL(Structured Query Language)中,处理日期和时间数据是常见的操作。`DATEFORMAT`一词通常与数据库查询中的日期格式化相关,特别是在某些数据库系统中。然而,需要注意的是,在标准SQL中并没有`DATEFORMAT`这...

    java学习笔记JDK6课件之十八

    在实际开发中,除了这些基础的日期时间操作外,开发者还会使用`Calendar`类进行更复杂的日期计算,或者使用Joda-Time库(在Java 8之前,Joda-Time提供了比`java.util.Date`更友好的API)和Java 8引入的`java.time`包...

    Java DateFormat并发实现

    在Java编程语言中,`DateFormat`是用于格式化日期和时间的重要类,它属于`java.text`包。然而,`DateFormat`并不是线程安全的,这意味着在多线程环境中直接使用可能会导致数据不一致或者异常。这篇博客文章《Java ...

    DateFormat

    调用该类中的方法,实现字符串于日期类型之间的转换,以及包括数据库中的日期类型,避免了代码的重复.

    前端项目-jquery-dateFormat.zip

    例如,如果你想要将日期格式化为"yyyy-mm-dd",可以这样操作: ```javascript $(document).ready(function() { var date = new Date(); var formattedDate = $.dateFormat(date, "yyyy-mm-dd"); $("#dateElement...

    java使用DateFormat类转换时间格式.docx

    在Java编程中,处理日期与时间是非常常见的需求之一。`java.util`包中的`DateFormat`类提供了多种方法来格式化日期并将其转换为字符串,或者将字符串解析为日期对象。这对于数据展示、数据库操作以及用户界面交互等...

    timepicker的日期选择格式

    你可以根据需求调整这些值,以便于用户理解和操作。 除了基本的日期格式,`timepicker`还可能支持更多高级特性,比如时间间隔选择、时间范围限制、默认值设定等。例如,如果你希望时间选择只能以半小时为单位,可以...

    带时间的jquery日历控件

    带时间的jquery日历控件 调用方法: <script src="./public/js/jquery-ui-1.10.3...$( "#datetimepicker" ).datetimepicker({dateFormat:"yy-mm-dd",timeFormat:"HH:mm:ss",regional:$.datepicker.regional['zh-CN']});

    DateFormat_Dateformat_

    标题中的"DateFormat_Dateformat_"可能是指在编程中处理日期格式化时使用特定的分隔符“-”来组织日期字符串。在很多编程语言中,日期和时间的格式化是通过特定的方法或函数来完成的,这通常涉及到指定日期的各个...

    手机时间选择插件mobiscroll-2.6.2最好用的版本

    //preset: 'date', //日期类型--datatime --time, //theme: 'ios', //皮肤其他参数【android-ics light】【android-ics】【ios】【jqm】【sense-ui】【sense-ui】【sense-ui】 //【wp light】【wp】 //mode: ...

    DateFormat多线程问题

    如果必须复用`DateFormat`实例,可以通过同步机制来控制对它的访问。然而,这将降低并行性能,因为所有线程需要排队执行格式化操作。 4. **使用`SimpleDateFormat`的替代品**: Java 8 引入了`java.time.format....

Global site tag (gtag.js) - Google Analytics