`
lohasle
  • 浏览: 254956 次
社区版块
存档分类
最新评论

java取得格式化时间的最小刻度的整点时间

阅读更多
public class Test{  
 /**
     * 取得符合规范的data
     *
     * @param sourDate
     * @param pattern
     * @return
     */
    public static Date praseDateToDataByPattern(Date sourDate, String pattern) throws ParseException {
        if (sourDate == null || pattern == null) {
            throw new ParseException("错误的日期和格式化字符", 0);
        }
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
        String result_date = sdf.format(sourDate);
        return sdf.parse(result_date);
    }

    /**
     * 取得格式化字符串的整点数据
     * 根据格式化的字符串的最小单位四舍五入的对时间进行操作
     * 如  2013-05-01 02:12:34  -->2013-05-01 02:13:00
     * 2013-05-01 02:12:12  -->2013-05-01 02:12:00
     *
     * @param date   日期
     * @param format 格式化的字符串
     * @return
     */
    public static String getCorrectDateOnEntire(Date date, String format) throws ParseException {
        if (date == null || format == null) {
            throw new ParseException("错误的日期和格式化字符", 0);
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        char[] ch = format.toCharArray();
        StringBuffer least_precision = new StringBuffer();
        for (int i = ch.length; i > 0; i--) {
            if (ch[ch.length - 1] == ch[i - 1]) {
                least_precision.append(ch[i - 1]);
            } else {
                break;
            }
        }
        Date run_date = praseDateToDataByPattern(date, format);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(run_date);
        int field = TimeAccuracy.valueOf(least_precision.toString()).textVal;
        int real_time = calendar.get(field);
        int possible_max_time = calendar.getMaximum(field);// 12小时制
        if (real_time > possible_max_time) {
            calendar.roll(field, true);
        } else {
            calendar.roll(field, calendar.getMinimum(field));
        }
        return sdf.format(calendar.getTime());
    }


    public static enum TimeAccuracy {
        yyyy(Calendar.YEAR),
        MM(Calendar.MONTH),
        dd(Calendar.DATE),
        HH(Calendar.HOUR),
        mm(Calendar.MINUTE),
        ss(Calendar.MILLISECOND);

        private int textVal;

        private TimeAccuracy(int textVal) {
            this.textVal = textVal;
        }

        private int getIntValue() {
            return textVal;
        }
    }
}
分享到:
评论

相关推荐

    qt绘制时间轴,自由设置时间刻度

    - 提供接口让用户自定义时间刻度的单位(如秒、分钟、小时、天等)和显示格式。 - 允许用户设置时间轴的最大和最小显示范围,以及默认的缩放级别。 6. **布局与更新**: - 使用QGraphicsScene的update()方法来在...

    Echarts时间轴的刻度优化和自适应

    4. **处理时间格式化**:同时,我们还需要处理时间的显示格式,可以使用d3.js的`d3.timeFormat`或者Echarts的`axisLabel.formatter`来格式化时间轴上的标签。 5. **实现自适应**:为了使刻度轴在不同数据量和粒度下...

    javascript 时间刻度尺插件

    3. **时间格式化**:将时间戳转换为易读的日期和时间字符串,支持多种格式。 4. **交互性**:支持鼠标悬停显示详细信息,点击选择特定时间点等功能。 5. **可扩展性**:通过API接口,可以与其他JavaScript库(如D3...

    时间刻度-进度条

    在IT行业中,自定义时间刻度和进度条是常见的用户界面元素,特别是在视频播放、数据监控和数据分析等场景中。海康的存储设备录像回放功能中的进度条和时间刻度设计,为用户提供了一种直观的方式来了解当前播放位置...

    web 时间刻度、

    它们通常通过API调用,设置时间轴的属性,如时间间隔、格式化等,然后自动生成可视化时间刻度。 2. CSS样式:对于简单的静态时间刻度,可以通过CSS进行布局和样式设计,创建水平或垂直的时间轴,并利用`::before`和...

    利用AxisRenderer格式化图表刻度标签

    本文将探讨如何利用`AxisRenderer`来格式化图表的刻度标签,这对于提升图表的可读性和美观性至关重要。 `AxisRenderer`是JFreeChart库中的一个关键类,它负责控制图表轴(如X轴和Y轴)的渲染,包括刻度线、标签、...

    jQuery刻度尺时钟效果,一款把日期和时间通过横向刻度条展现,效果非常酷,完全突破了传统的时钟概念,兼容主流浏览器

    在本文中,我们将深入探讨如何使用jQuery实现一种创新的刻度尺时钟效果,它将日期和时间以横向刻度条的形式展示出来,为用户带来独特的视觉体验。这个时钟设计打破了传统数字或指针式时钟的观念,且具有良好的浏览器...

    Android-自定义时间刻度尺(随着手指自行缩放)多种显示模式

    3. **定制化**:自定义时间刻度尺的一个关键优势是高度可定制。开发者可以根据应用的需求,调整刻度的颜色、大小、字体、间隔等视觉元素,甚至可以添加自定义的时间标记和事件指示。 4. **性能优化**:考虑到...

    Android缩放平移的时间刻度尺

    可以使用`SimpleDateFormat`或`java.time`库来格式化日期和时间字符串,使其更易读。 8. **性能优化**: 在处理大量数据时,可以使用分段加载策略,只渲染可视区域内的数据,避免一次性绘制过多元素导致的性能问题。...

    android时间刻度盘

    如果你的应用需要支持多种语言或格式,可以考虑使用适配器和数据绑定框架,将时间字符串与刻度盘组件进行绑定,方便切换和更新。 总结来说,创建一个Android时间刻度盘涉及到自定义View的绘制、时间处理、触摸事件...

    jQuery刻度尺风格横向时间轴插件timeline

    **jQuery刻度尺风格横向时间轴插件timeline详解** 在Web开发中,视觉元素的创新和用户体验的提升是至关重要的。"jQuery刻度尺风格横向时间轴插件timeline"正是一款能够帮助开发者实现这一目标的工具。这款插件以其...

    TimeLine2.rar(QPainter时间轴绘制,实现刻度的缩放,移动,值对应)

    在本文中,我们将深入探讨如何使用Qt库中的QPainter类来创建一个自定义的时间轴,实现刻度的缩放、移动以及数值对应的功能。Qt是一个跨平台的应用程序开发框架,广泛应用于C++编程中,提供了丰富的图形用户界面(GUI...

    C# 最小刻度为CM的标尺

    在C#编程中,创建一个具有最小刻度为厘米(CM)的标尺是一个常见的需求,特别是在开发图形用户界面或涉及尺寸测量的应用程序中。这个标尺控件可以帮助用户直观地理解并处理与厘米单位相关的数据。下面我们将深入探讨...

    微信小程序预约时间(多刻度).zip

    在描述中提到的“多刻度”,指的是预约时间可以精确到多个时间点,而不是只有整点。例如,用户可以选择9:00-10:00、10:00-11:00这样的时间段,甚至可能支持15分钟或30分钟为单位的细分时间刻度,这样提高了预约的...

    jQuery刻度尺风格横向时间轴插件timeline.zip

    《jQuery刻度尺风格横向时间轴插件timeline详解》 在网页设计中,时间轴是一种常见且有效的展示信息的方式,它能清晰地呈现事件的顺序和时间跨度。jQuery作为一款强大的JavaScript库,提供了丰富的功能来简化网页...

    Android自定义刻度尺精确到毫米

    首先,要实现自定义刻度尺,我们需要创建一个新的Java类,继承自`View`或`ViewGroup`。在这个例子中,我们可能选择`View`作为基类,因为它更轻量级,适用于简单的图形绘制。创建类时,通常命名为`CustomScaleView`,...

    swift-GXTimeSliderView支持双向调节时间时间刻度为1小时

    `Date`对象代表一个绝对时间点,而`Calendar`则用于对日期和时间进行格式化、比较和计算。在`GXTimeSliderView`中,我们可能需要创建一个`Date`对象来表示当前选中的时间,并通过`Calendar`的`date(byAdding:to:...

    vue刻度尺组件

    在Vue项目中,创建一个刻度尺组件是非常实用的功能,尤其在数据可视化或者需要进行精确测量的场景下。这个名为"vue刻度尺组件"的项目,很可能包含了一个自定义的Vue组件,用于在界面上显示可定制的刻度尺。 刻度尺...

    java 时钟

    Java的`java.text.SimpleDateFormat`和`java.time.format.DateTimeFormatter`类可以用于格式化日期和时间。 7. **事件监听**: 为了响应用户的操作,如调整时钟设置,需要使用事件监听机制。例如,为按钮添加`...

    java的图形化,时钟经典案例

    可能还会使用`java.text.SimpleDateFormat` 或 `java.time` 包中的类来处理日期和时间的格式化。 总的来说,这个案例提供了一个学习和实践Java图形化编程、事件处理和Web集成的好机会。通过分析和运行这个时钟程序...

Global site tag (gtag.js) - Google Analytics