java – Joda-Time DateFormatter如果非零则显示毫秒

使用 Joda-Time,我想显示一个日期列表,这些日期可能有或没有毫秒.如果某个条目有毫秒,那么它应该显示为yyyy MM dd HH:mm:ss.SSS.如果它没有millis,我需要它显示为yyyy MM dd HH:mm:ss.

我想一般的问题是:有没有办法描述可选的格式字符串参数?

(我想避免重构我使用格式化程序的所有地方,因为这是一个很大的代码库.)

解决方法

据我所知,没有可选的模式.但是,我认为你可能会过度思考你的问题.
// Sample variable name - you'd probably name this better.
public static DateTimeFormat LONG_FORMATTER = DateTimeFormatter.forPattern("yyyy MM dd HH:mm:ss.SSS");

// Note that this could easily take a DateTime directly if that's what you've got.
// Hint hint non-null valid date hint hint.
public static String formatandChopEmptyMilliseconds(final Date nonNullValidDate) {
    final String formattedString = LONG_FORMATTER.print(new DateTime(nonNullValidDate));
    return formattedString.endsWith(".000") ? formattedString.substring(0,formattedString.length() - 4) : formattedString;
}

长度可能不完全适合子串(未经测试的代码),但你明白了.

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...