TimeTools.java
3.75 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.wd.common.utils;
import android.text.TextUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @Author LiuKun
* @date:2023/5/16
* @desc:评论时间专用
*/
public class TimeTools {
/**
* 格式化效果
*/
private static final SimpleDateFormat DATETIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 时间转换
*/
public static String conversionTimeForm(String dateTime) {
return conversionTimeForm(dateTime,true);
}
/**
* 时间转换
* @param dateTime 时间毫秒数
* @param showCurrentYear true显示当年年份,false当年的不显示年/跨年显示年份
*/
public static String conversionTimeForm(String dateTime, boolean showCurrentYear) {
try {
if (TextUtils.isEmpty(dateTime)) {
return "";
}
long l = dateToStampForm(dateTime);
if(showCurrentYear){
return conversionTime(l);
}else{
return conversionTime(l,false);
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 将时间转换为时间戳
*
* @param dateString
* @return 时间戳
*/
public static long dateToStampForm(String dateString) throws ParseException {
long ts = 0;
if (!TextUtils.isEmpty(dateString)) {
Date date = DATETIME_FORMAT.parse(dateString);
ts = date.getTime();
}
return ts;
}
/**
* 转化时间输入时间与当前时间的间隔
*
* @param timestamp
* @return
*/
public static String conversionTime(long timestamp) {
return conversionTime(timestamp,false);
}
/**
* 转化时间输入时间与当前时间的间隔
*
* @param timestamp
* @param showCurrentYear true展示当年年份,false当年的不显示年/跨年显示年份
* @return
*/
public static String conversionTime(long timestamp,boolean showCurrentYear) {
// 因为牵扯到 小时分钟秒 的比较,所以需要用到这个方法
long currentSeconds = Calendar.getInstance().getTimeInMillis();
// 与现在时间相差豪秒数
long timeGap = currentSeconds - timestamp;
String timeStr = "";
// 48小时以上
if (timeGap >= 60 * 60 * 1000 * 48) {
Date date = new Date(timestamp);
Calendar c = Calendar.getInstance();
c.setTime(date);
if(showCurrentYear){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
timeStr = sdf.format(date);
}else{
Calendar currentCalendar = Calendar.getInstance();
if(currentCalendar.get(Calendar.YEAR) == c.get(Calendar.YEAR)){
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
timeStr = sdf.format(date);
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
timeStr = sdf.format(date);
}
}
}
//大于24且小于72小时
else if (timeGap > 60 * 60 * 1000 * 24) {
timeStr = (timeGap / (60 * 60 * 1000 * 24)) + "天前";
}
// 1小时-24小时
else if (timeGap > 60 * 60 * 1000) {
timeStr = timeGap / (60 * 60 * 1000) + "小时前";
}
// 1分钟-59分钟
else if (timeGap > 60 * 1000) {
timeStr = timeGap / (60 * 1000) + "分钟前";
}
// 1秒钟-59秒钟
else {
timeStr = "刚刚";
}
return timeStr;
}
}