简介

Joda是一个java的处理时间类库,需要jdk8的支持,是java.time (JSR-310).

来自

今天在无意中学习spring的文档(9.6.2 Annotation-driven Formatting)的Formatter的的源码的时候,发现这个时间类库,由于spring某些功能也依赖这个类库,所以我决定瞧瞧是怎么回事

功能

直接跟当前时间比较 isAfterNow/isBeforeNow/isEqualNow

返回Date/Calendar toDate/toCalendar

时间计算,加年/月/日/时分秒 plusYears/plusMonths/plusDays

时区设置 withZone

常用函数

dt.getEra();

dt.getYear();//获取当前年

dt.getWeekyear();

dt.getCenturyOfEra();

dt.getYearOfEra();//世纪年

dt.getYearOfCentury();

dt.getMonthOfYear();//获取月份

dt.getWeekOfWeekyear();//这周是今年的第几周

dt.getDayOfYear();//这天是今年的第几天

dt.getDayOfMonth();//月份的多少好

dt.getDayOfWeek();//一个星期的第几天

依赖

joda-time

joda-time

2.9.4

example code

JodaTimeTest.java

package com.carl.spring.hello.bean;

import org.joda.time.DateTime;

import org.joda.time.Duration;

import org.joda.time.Period;

import org.joda.time.format.DateTimeFormatter;

import org.joda.time.format.DateTimeFormatterBuilder;

import org.junit.Test;

import java.util.Date;

import java.util.Locale;

/**

* @author Carl

* @date 2016/9/2

*/

public class JodaTimeTest {

@Test

public void dateTimeTest() {

//2016/9/2

//当前时间

java.util.Date juDate = new Date();

//如果无参,也默认是当前时间的

DateTime dt = new DateTime(juDate);

show(dt);

}

@Test

public void dateTimeChange() {

DateTime dt = new DateTime();

//把年改为2000年的

DateTime year2000 = dt.withYear(2000);

//时间加两个小时

DateTime twoHoursLater = dt.plusHours(2);

show(dt);//2016-9-2 0:16

show(year2000);//2000-9-2 0:16

show(twoHoursLater);//2016-9-2 2:16

}

@Test

public void dateTimeText() {

DateTime dt = new DateTime();

String monthName = dt.monthOfYear().getAsText();

//根据地区获取Text

String frenchShortName = dt.monthOfYear().getAsShortText(Locale.CHINA);

boolean isLeapYear = dt.year().isLeap();

DateTime rounded = dt.dayOfMonth().roundFloorCopy();

System.out.println(monthName);

System.out.println(frenchShortName);

System.out.println(isLeapYear);

//月份的最后一天

System.out.println(dt.dayOfMonth().getMaximumValue());

show(rounded);

}

@Test

public void dateTimeArgs() {

//实例就能够确定年月日时分秒

DateTime dt = new DateTime(2005, 3, 26, 12, 0, 0, 0);

//这里能够进行时间的计算,plus就是加了,周期肯定是那个接口的,里面肯定也有年月日时分秒

DateTime plusPeriod = dt.plus(Period.days(1));

DateTime plusDuration = dt.plus(new Duration(24L*60L*60L*1000L));

show(dt);//2005-3-26 12:0

//减一天

show(dt.plusDays(-1));//2005-3-25 12:0

show(plusPeriod);//2005-3-27 12:0

show(plusDuration);//2005-3-27 12:0

}

@Test

public void dataTimeFormat() {

DateTimeFormatter fmt = new DateTimeFormatterBuilder()

.appendDayOfMonth(1)

.appendLiteral('-')

.appendMonthOfYearShortText()

.appendLiteral('-')

.appendTwoDigitYear(1956) // pivot = 1956

.toFormatter();

DateTime dt = new DateTime();

System.out.println(dt.toString(fmt));//2-九月-16

}

private void show(DateTime dateTime) {

System.out.println(dateTime.getYear() + "-" + dateTime.getMonthOfYear() + "-" + dateTime.getDayOfMonth() + " " + dateTime.getHourOfDay() + ":" + dateTime.getMinuteOfHour());

}

}

java封装joda_【类库】java时间操作类库:Joda-Time相关推荐

  1. Java Calendar 日历类的时间操作 Timestamp Date Calendar 相互转换

    Java Calendar 日历类的时间操作,这也许是 Java 环境下创建和管理日历及操作时间最简单的一个方案了,示范代码也很简单. 演示了获取时间,日期时间的累加和累减,以及日期时间的比较. 原文 ...

  2. Java时间操作类库—Joda-Time

    点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 上一周在做一个产品的需求的时候有 ...

  3. 深入解析Java字节码和字节码操作类库ASM源码解析

    导语 在非黑即白的静态编译语言和动态脚本语言的分类方法中,java的立场显得很尴尬.首先java是静态强类型语言,所以java源代码是需要编译的.但是javac编译后的产出物并不是和传统的编译语言一样 ...

  4. java到期日期_java 常用时间操作类,计算到期提醒,N年后,N月后的日期

    packagecom.zjjerp.tool;importjava.text.ParseException;importjava.text.ParsePosition;importjava.text. ...

  5. java封装的特性,java的三大特性(封装、继承、多态)

    Java语言的三大特性即是:封装.继承.多态 首先先简单的说一下其3大特性的定义: 封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别.将抽象得到的数据和行为(或功能 ...

  6. jenkins api java封装_Jenkins api java 调用

    android development 1. Supporting different devices 1) Supporting different screen size 主要有几点,首先是布局文 ...

  7. java封装为so,java挪用.so文件

    环境是Linux 1.编写好java文件 public classATest {private native voidhello();static{ System.load("/home/l ...

  8. java 封装api_关于java 封装某个功能为api形式供其他用户调用的问题

    利用泛型定义一个返回对象 public class ServiceResult { private String msg="";//消息说明 private int resultC ...

  9. Java学习教程,Java从入门到精通,全套Java视频教程+笔记+配套工具

    目录 一.大纲 一.Java基础 二.计算机基础 三.工具的使用 四.数据库 五.web前端 六.JavaWeb 七.框架 八.互联网分布式技术 发现身边很多自学java却放弃的,真的挺可惜的. 白白 ...

最新文章

  1. Visual Studio® 2010 Web Deployment Projects站点编译生成bin同时发表插件
  2. Uva1593 代码对齐
  3. Jmeter将HTTP request报文体中的字符串转换为大写
  4. 给大家提供一些面试常问的问题
  5. error和exception
  6. shell脚本if中判断大于、小于、等于、不等于的符号
  7. go系列(1)- linux下安装go环境
  8. 年夜饭之 -- 红烧羊肉
  9. gd32f303 设计中断优先级_浅谈飞控的软件设计
  10. SAO Utils 农历与股票插件
  11. python随机生成车牌_使用Python+OpenCV+GAN实现车牌图像增强!其实真不难!
  12. C/C++编程题之购物清单
  13. Android虚拟机报错解决方法
  14. Dear小弟×××,给你们的一封信「社区运营入门系列 序」
  15. C++:友元函数访问私有函数
  16. 23年教资面试开始啦个人报名流程
  17. C2 - Pokémon Army (hard version)(思维+差分/线段树+dp)详解
  18. hubot+slack(slack部分)
  19. Redis Module 模块组件
  20. JAVA 性能调优相关命令

热门文章

  1. 计算机显示屏怎么加密,怎样给电脑设置密码的屏幕保护
  2. Python3入门教程:Excel 基础操作(上)
  3. CRC-16/CCITT算法实现
  4. 基于Qt的ui图形化界面进行的界面设计
  5. 室内定位技术方案---Wifi、RFID、bluetooth、Zigbee
  6. WebSocket 入门:简易聊天室
  7. 纳滤膜分离技术用于制药提纯精制处理 稳定可靠
  8. 【CV Transformer 论文笔记】Intriguing Properties of Vision Transformers
  9. Ubuntu20.04+Nvidia RTX 3060 显卡驱动安装
  10. Redis(1)入门指令