TimeUtil.java
4.17 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
131
132
133
134
135
136
137
138
139
140
141
142
package com.wd.foundation.bean.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.text.TextUtils;
public class TimeUtil {
public static final SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private TimeUtil() {
}
/**
* 格式化毫秒数为 xx:xx:xx这样的时间格式。
*
* @param ms 毫秒数
* @return 格式化后的字符串
*/
public static String formatMs(long ms) {
int seconds = (int) (ms / 1000);
int finalSec = seconds % 60;
int finalMin = seconds / 60 % 60;
int finalHour = seconds / 3600;
StringBuilder msBuilder = new StringBuilder("");
if (finalHour > 9) {
msBuilder.append(finalHour).append(":");
} else if (finalHour > 0) {
msBuilder.append("0").append(finalHour).append(":");
}
if (finalMin > 9) {
msBuilder.append(finalMin).append(":");
} else if (finalMin > 0) {
msBuilder.append("0").append(finalMin).append(":");
} else {
msBuilder.append("00").append(":");
}
if (finalSec > 9) {
msBuilder.append(finalSec);
} else if (finalSec > 0) {
msBuilder.append("0").append(finalSec);
} else {
msBuilder.append("00");
}
return msBuilder.toString();
}
/**
* type = holiday 日期转换为毫秒值
*
* @param date yyyy-MM-dd HH:mm:ss
* 2022-11-25 19:00:01
*/
public static Long jsonToTimeInMillis2(String date) {
if (TextUtils.isEmpty(date)) {
return 0L;
}
Long jsonToTm = 0L;
Date newDate = new Date();
try {
newDate = datetimeFormat.parse(date);// datetimeFormat
jsonToTm = newDate.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return jsonToTm;
}
/**
* 转化时间输入时间与当前时间的间隔
*
* @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;
}
}