개발은 재밌어야 한다
article thumbnail
반응형

이번 포스팅은 실무에서 주로 날짜 데이터를 다룰때가 있는데 그때마다 주로 사용하는 방법들을 정리해보려고 합니다.

 

1. 경과된 밀리세컨드(millisecond)를 현재시간에서 빼기

1
2
3
4
5
6
7
8
9
10
11
// millisecond 값이 String으로 주어졌을때
 
// 2412716459밀리세컨드 만큼의 값이 흘렀을 때 현재시간에서 밀리세컨드를 뺀 날짜를 구하기
String strMilliSeconds = "2412716459";
Long MilSeonds = Long.parseLong(value.toString());
 
Date nowDate = new Date();
 
long wantMilSecs = nowDate.getTime() - MilSeonds;
 
Date wantDate = new Date(wantMilSecs);
cs

2. Date의 날짜 형태를 String 변환 (yyyy-MM-dd HH:mm:ss 형태)

Wed Apr 21 14:49:40 KST 2021와 같은 시간의 형태를 yyyy-MM-dd HH:mm:ss의 데이터 포맷으로 변환하는 방법

(Date -> String)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// now의 값은 Wed Apr 21 14:49:40 KST 2021 이다.
Date now = new Date
 
DateFormat dateFomatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
String dateTime = "-";
 
if (date != null)
{
    dateTime = dateFomatter.format(date.getTime());
}
 
System.out.println(dateTime);
 
// 2021-04-21 14:52:23
 
cs

3. String을 Date 형태로 변환하기

1
2
3
4
String strDate = "    2021-04-06 17:24:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(strDate);
 
cs

4. 초(sec)를 일, 시간, 분, 초로 변환하기 (초값 일 시간 분 초 변환)

int로된 초(sec)값을 x일x시간x분x초로 변환하는 방법입니다.

 

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
        Integer sec = 123456789
 
        DecimalFormat df = new DecimalFormat("00");
        
        int remain = sec.intValue();
        
        String dayStr = "일 ";
        String hourStr = "시간 ";
        String minStr = "분 ";
        String secStr = "초";
        
        int day = remain / 86400;
        remain %= 86400;
 
        StringBuilder sb = new StringBuilder();
        if (day > 0)
        {
            sb.append(df.format(day));
            sb.append(dayStr);
        }
 
        int hour = remain / 3600;
        remain %= 3600;
        if (hour > 0)
        {
            sb.append(df.format(hour));
            sb.append(hourStr);
        }
 
        int minute = remain / 60;
        remain %= 60;
        if (minute > 0)
        {
            sb.append(df.format(minute));
            sb.append(minStr);
        }
 
        int second = remain;
        if (second > 0)
        {
            sb.append(df.format(second));
            sb.append(secStr);
        }
        
        System.out.println(sb.toString());
        // 1428일 21시간 33분 09초
        
cs
반응형
profile

개발은 재밌어야 한다

@ghyeong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!