博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开源Java时间工具类Joda-Time体验
阅读量:6524 次
发布时间:2019-06-24

本文共 3813 字,大约阅读时间需要 12 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import 
org.joda.time.*;
import 
org.joda.time.format.DateTimeFormat;
import 
org.joda.time.format.DateTimeFormatter;
import 
org.junit.Test;
 
import 
java.util.Locale;
 
/**
 
* @author by lei zhou on 2017/11/09 14:20.
 
*/
public 
class 
JodaTimeTest {
 
    
@Test
    
public 
void 
test() {
 
 
        
// 日期输出格式
        
DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern(
"yyyy-MM-dd HH:mm:ss"
);
 
        
System.out.println(
"当前日期时间: " 
+ DateTime.now().toString(dateTimeFormat));
        
System.out.println(
"当前日期但时间清0: " 
+ DateTime.now().withTimeAtStartOfDay().toString(dateTimeFormat));
        
System.out.println(
"本月第一个周日的日期时间: " 
+ getThisMonthFirstSunday().toString(dateTimeFormat));
        
System.out.println(
"本周周一的日期时间: " 
+ getThisWeekSunday().toString(dateTimeFormat));
        
System.out.println(
"距离元旦天数: " 
+ daysToNewYear(DateTime.now()));
        
System.out.println(
"距离元旦月数: " 
+ monthsToNewYear(DateTime.now()));
        
System.out.println(
"当前月份最后一天日期: " 
+
                
DateTime.now().withDayOfMonth(
1
)
                        
.monthOfYear().addToCopy(
1
)
                        
.dayOfMonth().addToCopy(-
1
)
                        
.withTimeAtStartOfDay()
                        
.toString(dateTimeFormat));
 
        
String[] french = DateTimeUtils.getDateFormatSymbols(Locale.FRANCE).getWeekdays();
        
String[] japanese = DateTimeUtils.getDateFormatSymbols(Locale.JAPAN).getWeekdays();
        
String[] korean = DateTimeUtils.getDateFormatSymbols(Locale.KOREA).getWeekdays();
 
        
System.out.println(
"今年每月第一天是周几: "
);
        
for 
(
int 
month = 
1
; month <= 
12
; month++) {
            
DateTime monthDateTime = DateTime.now().withTimeAtStartOfDay().withMonthOfYear(month).withDayOfMonth(
1
);
            
int 
index = monthDateTime.dayOfWeek().get() % 
7 
1
;
            
System.out.println(monthDateTime.toString(DateTimeFormat.fullDateTime()) + 
" 法语:" 
+ french[index] + 
" 日语:" 
+ japanese[index] + 
" 韩语:" 
+ korean[index]);
        
}
 
        
DateTime birthday = DateTime.parse(
"1981-10-30 8:00:00"
, dateTimeFormat);
        
System.out.println(
"距离出生已过去多少年: " 
+ Years.yearsBetween(birthday, DateTime.now()).getYears());
        
System.out.println(
"距离出生已过去多少天: " 
+ Days.daysBetween(birthday, DateTime.now()).getDays());
        
System.out.println(
"距离出生已过去多少分钟: " 
+ Minutes.minutesBetween(birthday, DateTime.now()).getMinutes());
    
}
 
    
private 
int 
monthsToNewYear(DateTime fromDate) {
        
DateTime newYear = fromDate.plusYears(
1
).withDayOfYear(
1
);
        
return 
Months.monthsBetween(fromDate, newYear).getMonths();
    
}
 
    
private 
int 
daysToNewYear(DateTime fromDate) {
        
DateTime newYear = fromDate.plusYears(
1
).withDayOfYear(
1
);
        
return 
Days.daysBetween(fromDate, newYear).getDays();
    
}
 
    
private 
DateTime getThisMonthFirstSunday() {
        
return 
DateTime.now().withDayOfMonth(
1
).withDayOfWeek(DateTimeConstants.SUNDAY);
    
}
 
    
private 
DateTime getThisWeekSunday() {
        
return 
DateTime.now().withDayOfWeek(DateTimeConstants.MONDAY);
    
}
}

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
当前日期时间: 2017-11-09 16:47:37
当前日期但时间清0: 2017-11-09 00:00:00
本月第一个周日的日期时间: 2017-11-05 16:47:37
本周周一的日期时间: 2017-11-06 16:47:37
距离元旦天数: 53
距离元旦月数: 1
当前月份最后一天日期: 2017-11-30 00:00:00
今年每月第一天是周几: 
2017年1月1日 星期日 上午12时00分00秒 CST 法语:dimanche 日语:日曜日 韩语:
2017年2月1日 星期三 上午12时00分00秒 CST 法语:mercredi 日语:水曜日 韩语:
2017年3月1日 星期三 上午12时00分00秒 CST 法语:mercredi 日语:水曜日 韩语:
2017年4月1日 星期六 上午12时00分00秒 CST 法语:samedi 日语:土曜日 韩语:
2017年5月1日 星期一 上午12时00分00秒 CST 法语:lundi 日语:月曜日 韩语:
2017年6月1日 星期四 上午12时00分00秒 CST 法语:jeudi 日语:木曜日 韩语:
2017年7月1日 星期六 上午12时00分00秒 CST 法语:samedi 日语:土曜日 韩语:
2017年8月1日 星期二 上午12时00分00秒 CST 法语:mardi 日语:火曜日 韩语:
2017年9月1日 星期五 上午12时00分00秒 CST 法语:vendredi 日语:金曜日 韩语:
2017年10月1日 星期日 上午12时00分00秒 CST 法语:dimanche 日语:日曜日 韩语:
2017年11月1日 星期三 上午12时00分00秒 CST 法语:mercredi 日语:水曜日 韩语:
2017年12月1日 星期五 上午12时00分00秒 CST 法语:vendredi 日语:金曜日 韩语:
距离出生已过去多少年: 36
距离出生已过去多少天: 13159
距离出生已过去多少分钟: 18949487
本文转自   zl1030   51CTO博客,原文链接:http://blog.51cto.com/zl1030/1980326

转载地址:http://donbo.baihongyu.com/

你可能感兴趣的文章
删除 Eclipse 的 configuration 目录
查看>>
MOXA的智能通信产品也大力支持WinCE.net了
查看>>
ActiveX开发知多少?
查看>>
你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
查看>>
Android操作系统2.0制作备份
查看>>
To XSS or not ? 杂谈
查看>>
TFTP服务器在Cisco设备上的应用(上传、下载IOS)
查看>>
获得文件和文件夹的所有权
查看>>
烂泥:学习mysql数据库主从同步复制原理
查看>>
Java相对路径读取文件
查看>>
PostgreSQL 商用版本EPAS(阿里云ppas) 自动(postgresql.conf)参数计算与适配功能
查看>>
烂泥:学习ssh之ssh隧道应用
查看>>
Android TableLayout 常用的属性介绍及演示
查看>>
调用共享内存的方法《精通Unix下C语言编程与项目实践》之八
查看>>
C# using语句的使用
查看>>
AngularJS快速入门指南06:过滤器
查看>>
《Effective C#》读书笔记——条目1:使用属性而不是可访问的数据成员<C#语言习惯>...
查看>>
转】matlab 字符串处理函数
查看>>
oc66--代理模式应用2
查看>>
JSONObject和JSONArray(json-lib-2.4)的基本用法
查看>>