-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTimeFormatter.java
More file actions
119 lines (95 loc) · 4.11 KB
/
Copy pathTimeFormatter.java
File metadata and controls
119 lines (95 loc) · 4.11 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
package ru.cwcode.cwutils.datetime;
import org.jetbrains.annotations.NotNull;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.util.Date;
import java.util.TimeZone;
public class TimeFormatter {
public static final SimpleDateFormat MM_SS_TIME_FORMAT = new SimpleDateFormat("mm:ss");
public static final SimpleDateFormat HH_MM_SS_TIME_FORMAT = new SimpleDateFormat("HH:mm:ss");
public static final SimpleDateFormat MM_SS_TIME_FORMAT_UTC = new SimpleDateFormat("mm:ss");
public static final SimpleDateFormat HH_MM_SS_TIME_FORMAT_UTC = new SimpleDateFormat("HH:mm:ss");
public static final SimpleDateFormat FULL_DATE_FORMAT = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
private static final String formatted_time_days = " д";
private static final String formatted_time_hours = " ч";
private static final String formatted_time_minutes = " мин";
private static final String formatted_time_seconds = " сек";
static {
MM_SS_TIME_FORMAT_UTC.setTimeZone(TimeZone.getTimeZone("UTC"));
HH_MM_SS_TIME_FORMAT_UTC.setTimeZone(TimeZone.getTimeZone("UTC"));
}
public static String formatFull(long millis) {
return format(millis, FULL_DATE_FORMAT);
}
public static String formatHours(long millis) {
return format(millis, HH_MM_SS_TIME_FORMAT);
}
public static String format(long millis, SimpleDateFormat format) {
return format.format(millis);
}
public static String formatHoursUTC(long millis) {
return format(millis, HH_MM_SS_TIME_FORMAT_UTC);
}
public static String formatNowFull() {
return format(System.currentTimeMillis(), FULL_DATE_FORMAT);
}
public static String formatNowHours() {
return format(System.currentTimeMillis(), HH_MM_SS_TIME_FORMAT);
}
public static String formatNow(String format) {
return format(System.currentTimeMillis(), format);
}
public static String format(long millis, String format) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(new Date(millis));
}
public static String formatNow() {
return format(System.currentTimeMillis());
}
public static String format(long millis) {
return format(millis, MM_SS_TIME_FORMAT);
}
public static String formatUTC(long millis) {
return format(millis, MM_SS_TIME_FORMAT_UTC);
}
public static String getFormattedTime(@NotNull final Duration duration, int timeParamsCount, String formatted_time_days, String formatted_time_hours, String formatted_time_minutes, String formatted_time_seconds) {
StringBuilder formattedTime = new StringBuilder();
long days = Math.abs(duration.toDaysPart());
long hours = Math.abs(duration.toHoursPart());
long minutes = Math.abs(duration.toMinutesPart());
long seconds = Math.abs(duration.toSecondsPart());
int timeParamsLeft = timeParamsCount;
if (days > 0) {
formattedTime.append(days).append(formatted_time_days);
timeParamsLeft--;
}
if (hours > 0 && timeParamsLeft > 0) {
if (formattedTime.length() > 0) formattedTime.append(" ");
formattedTime.append(hours).append(formatted_time_hours);
timeParamsLeft--;
}
if (minutes > 0 && timeParamsLeft > 0) {
if (formattedTime.length() > 0) formattedTime.append(" ");
formattedTime.append(minutes).append(formatted_time_minutes);
timeParamsLeft--;
}
if ((seconds > 0 || timeParamsLeft == timeParamsCount) && timeParamsLeft > 0) {
if (formattedTime.length() > 0) formattedTime.append(" ");
formattedTime.append(seconds).append(formatted_time_seconds);
}
return formattedTime.toString();
}
public static String getFormattedTime(@NotNull final Duration duration, int timeParamsCount) {
return TimeFormatter.getFormattedTime(
duration,
timeParamsCount,
TimeFormatter.formatted_time_days,
TimeFormatter.formatted_time_hours,
TimeFormatter.formatted_time_minutes,
TimeFormatter.formatted_time_seconds
);
}
public static String getFormattedTime(@NotNull final Duration duration) {
return TimeFormatter.getFormattedTime(duration, 2);
}
}