달력

52024  이전 다음

  • 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
반응형

String 짤라서 쓰는거보다 SimpleDateFormat 이놈 쓰는게 더 편하네요.

 

소스코드

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateConvert {

	public static void main(String[] args) {
		
		String strDate = "20200101";
				
		SimpleDateFormat sf = new SimpleDateFormat();
				
		try {
			
			// String -> Date로 형변환
			sf.applyPattern("yyyyMMdd");
			Date dt = sf.parse(strDate);

			// Date -> String로 형변환
			sf.applyPattern("yyyy-MM-dd");					
			System.out.print(sf.format(dt));
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

 

SimpleDateFormat 패턴표

기호 의미 출력
G 연대(BC,AD) AD
y 년도 2012
M 월(1~12월) 7
w 년의 몇 번째 주(1~53) 28
W 월의 몇 번째 주(1~5) 2
D 년의 몇 번째 일(1~366) 194
d 월의 몇 번째 일(1~31) 11
F 월의 몇 번째 요일(1~5) 3
E 요일
a 오전/오후(AM,PM) PM
H 시간(0~23) 0
k 시간(1~24) 24
K 시간(0~11) 10
h 시간(1~12) 10
m 분(0~59) 22
s 초(0~59) 7
S 천분의 1초(0~999) 253
z Time zone(General Time Zone) GMT+9:00
Z Time zone(RFC 822 time zone) +0900

 

출력

 

'프로그래밍 > Java' 카테고리의 다른 글

[Java]ResultSet Row수 구하기  (0) 2018.09.18
[Java]BigDecimal 올림 반올림 버림  (0) 2018.08.04
[Java]Spring 한글설정  (0) 2018.07.09
[Java]String, StringBuffer, StringBuilder  (0) 2018.07.07
[Java] String.valueOf와 toString  (0) 2018.05.30
Posted by 유령회사
|
반응형



Statement생성할때 옵션을 주고 옵션 안주면 에러남

ReusltSet의 Type
    TYPE_FORWARD_ONLY : scroll이 불가능한 forwad only 형
    TYPE_SCROLL_INSENSITIVE : scroll은 가능하나, 변경된 사항은 적용되지 않음
    TYPE_SCROLL_SENSITIVE : scroll은 가능하며, 변경된 사항이 적용됨

CONCURRENCY의 TYPE
    CONCUR_READ_ONLY : resultset object의 변경이 불가능
    CONCUR_UPDATABLE : resultset object의 변경이 가능

----------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------


Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE

                                                 , ResultSet.CONCUR_UPDATABLE);


rs.last();                        // 커서의 위치를 마지막으로 이동시킴
int rowCnt = rs.getRow(); // index를 위치가 row수

rs.beforeFirst();               // 커서를 처음으로 이동시킴 (rs.first()보다 이전으로)

Posted by 유령회사
|
반응형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.math.BigDecimal;
import java.math.RoundingMode;
 
public class BigDecimalTest {
 
    public static void main(String[] args) {
        BigDecimal dec  = BigDecimal.valueOf(123.567);        
        
        System.out.println(dec.setScale(2, BigDecimal.ROUND_UP));        // 올림   deprecated since version 9
        System.out.println(dec.setScale(2, BigDecimal.ROUND_DOWN));      // 버림   deprecated since version 9    
        System.out.println(dec.setScale(2, BigDecimal.ROUND_HALF_DOWN)); // 반올림 deprecated since version 9
                
        System.out.println(dec.setScale(2, RoundingMode.UP));
        System.out.println(dec.setScale(2, RoundingMode.DOWN));        
        System.out.println(dec.setScale(2, RoundingMode.HALF_DOWN));
    }
 
}
 
cs
 

9버전 기준으로 deprecated시켰다고 하는군요.


실행


Posted by 유령회사
|
반응형

Spring 프로젝트 생성시 한글이 깨져나오는데


web.xml에서

  


xml에 넣어주면 끝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!-- 한글 설정 시작-->
<filter>
   <filter-name>encodingFilter</filter-name>
   <filter-class>
   org.springframework.web.filter.CharacterEncodingFilter
   </filter-class>
   <init-param>
       <param-name>encoding</param-name>
       <param-value>UTF-8</param-value
   </init-param>
   <init-param>
       <param-name>forceEncoding</param-name>
       <param-value>true</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>encodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 한글 설정 끝-->
cs



'프로그래밍 > Java' 카테고리의 다른 글

[Java]ResultSet Row수 구하기  (0) 2018.09.18
[Java]BigDecimal 올림 반올림 버림  (0) 2018.08.04
[Java]String, StringBuffer, StringBuilder  (0) 2018.07.07
[Java] String.valueOf와 toString  (0) 2018.05.30
[Java] Calendar  (0) 2018.05.23
Posted by 유령회사
|
반응형


String

    한번 생성되면 String 객체가 변경이 안되고 concat이나 "+"로 문자열을 붙이면 

    새로운 메모리 주소로 다시 생성된다.

    String == String비교시 문자열의 메모리상의 주소를 비교한다.

    String.equals(String)은 문자열의 메모리상의 주소와 상관없이 내용을 비교한다. 


StringBuffer, StringBuilder

    append사용하여 문자열을 붙일 수 있다.(새로운 객체생성 안함)

    StringBuffer는 멀티 쓰레드 상태에서 동기화를 지원

    동기화를 지원하다보니 StringBuffer보다 StringBuilder가 성능 상으로는 더 빠르다.


-------------------------------------------------------------------------------------------

http://egloos.zum.com/deblan2/v/419830


이 분의 속도측정 결과를 보면 

    String의 append함수나 "+" 연산자 사용횟수에 따라 객체가 계속 생성되다보니 

    속도가 느려지는걸 볼 수 있다.

    문자열 연결작업이 많다면 반드시 StringBuffer나 StringBuilder를 사용하도록 하자. 

-----------------------------------------------------------------------------------------------

JDK 1.5 버전 이후에는 컴파일 단계에서 String 객체를 사용하더라도 StringBuilder로 컴파일 되도록 변경되었습니다. 그리하여 JDK 1.5 이후 버전에서는 String 클래스를 활용해도 StringBuilder와 성능상으로 차이가 없어졌습니다.

http://ooz.co.kr/298

'프로그래밍 > Java' 카테고리의 다른 글

[Java]BigDecimal 올림 반올림 버림  (0) 2018.08.04
[Java]Spring 한글설정  (0) 2018.07.09
[Java] String.valueOf와 toString  (0) 2018.05.30
[Java] Calendar  (0) 2018.05.23
[Java]SimpleDateFormat  (0) 2018.05.20
Posted by 유령회사
|
반응형

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
 
public class TestToString {
 
    public static void main(String[] args) 
    {
        String str = null;
        Integer intValue = null;
        
        // null을 대입하면 null이란 문자열을 준다.        
        System.out.println(String.valueOf(str));             
           
        // null을 대입하면 null이란 문자열을 준다.
        System.out.println(String.valueOf(intValue)); 
        
        try 
        {
            // toString()은 NullPointerException발생
            System.out.println(str.toString());
        }
        catch (NullPointerException e) 
        {
            System.out.println("NullPointerException발생");
        }
        
        // 이런식으로 쓰면 null을 스페이스로 돌려받을 수 있겠군...
        //(개인적으로 null을 싫어함)
        System.out.println("ToStringEx : " + ToStringEx(str)); 
    }
    
    private static String ToStringEx(Object str)
    {                
        return String.valueOf(str == null ? "" : str);
    }
}
 
cs


출력

null

null

NullPointerException발생

ToStringEx : 


'프로그래밍 > Java' 카테고리의 다른 글

[Java]BigDecimal 올림 반올림 버림  (0) 2018.08.04
[Java]Spring 한글설정  (0) 2018.07.09
[Java]String, StringBuffer, StringBuilder  (0) 2018.07.07
[Java] Calendar  (0) 2018.05.23
[Java]SimpleDateFormat  (0) 2018.05.20
Posted by 유령회사
|
반응형
상수 표

상수

사용방법

설명 

static int YEAR

Calendar.YEAR 

 현재 년도를 가져온다.

static int MONTH 

Calendar.MONTH 

 현재 월을 가져온다. (1월은 0) 

static int DATE 

Calendar.DATE 

 현재 월의 날짜를 가져온다

static int WEEK_OF_YEAR 

Calendar.WEEK_OF_YEAR

 현재 년도의 몇째 주

static int WEEK_OF_MONTH 

Calendar.WEEK_OF_MONTH 

 현재 월의 몇째 주 

static int DAY_OF_YEAR 

Calendar.DAY_OF_YEAR 

 현재 년도의 날짜 

static int DAY_OF_MONTH

Calendar.DAY_OF_MONTH 

 현재 월의 날짜 (DATE와 동일

static int DAY_OF_WEEK 

Calendar.DAY_OF_WEEK 

 현재 요일 (일요일은 1, 토요일은 7)

static int HOUR 

Calendar.HOUR 

 현재 시간 (12시간제)

static int HOUR_OF_DAY

Calendar.HOUR_OF_DAY 

 현재 시간 (24시간제

static int MINUTE 

Calendar.MINUTE 

 현재 분

static int SECOND 

Calendar.SECOND 

 현재 초 



소스예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Calendar;
 
public class TestCalendar 
{
    public static void main(String args[])
    {
        Calendar cal = Calendar.getInstance();
        
        int year  = cal.get(Calendar.YEAR); // 년
        int month = cal.get(Calendar.MONTH); // 월
        int day   = cal.get(Calendar.DAY_OF_MONTH); // 일        
        System.out.println(year + "년" + month + "월" + day + "일");
                
        cal.set(20180102); // 날짜 설정        
        year  = cal.get(Calendar.YEAR); // 년
        month = cal.get(Calendar.MONTH); // 월
        day   = cal.get(Calendar.DAY_OF_MONTH); // 일
        System.out.println(year + "년" + month + "월" + day + "일");
    }
}
 
cs


new Calendar()로 생성안하고 getInstance()로 생성했다는거만 주의해주면 되겠다.

여러개의 객체를 만들 필요가 없으니 딱 한놈 만들어서 돌려쓰기 하나보다.


출력

2018년4월23일

2018년1월2일



'프로그래밍 > Java' 카테고리의 다른 글

[Java]BigDecimal 올림 반올림 버림  (0) 2018.08.04
[Java]Spring 한글설정  (0) 2018.07.09
[Java]String, StringBuffer, StringBuilder  (0) 2018.07.07
[Java] String.valueOf와 toString  (0) 2018.05.30
[Java]SimpleDateFormat  (0) 2018.05.20
Posted by 유령회사
|
반응형

먹고 살려다 보니 자바도 하게 되어서 자바도 cv용으로 정리할까 한다...

자바하실수 있는분.....;;




패턴 표

기호

의미

보기

 G

 연대(BC, AD) 

 AD 

 y

 년도

 2009

 M

  (1~12월 또는 1~12)

 10또는 10, OCT

 w

 년의 몇 번째 주(1~53)

 50

 W

 월의 몇 번째 주(1~5)

 4

 D

 년의 몇 번째 일(1~366)

 100

 d

 월의 몇 번째 일(1~31)

 15

 F

 월의 몇번째 요일(1~5)

 1

 E

 요일

 

 a

 오전/오후(AM, PM)

 PM

 H

 시간(0~23)

 20

 k

 시간(1~24)

 12

 K

 시간(0~11)

 10

 h

 시간(1~12)

 11

 m

 (0~59)

 35

 s

 (0~59)

 55

 S

 천분의 1(0~999)

 253

 z

 Time zone(General time zone)

 GMT+9:00

 Z

 Time zone(RFC 822 time zone)

 +0900

'

 escape문자(특수문자를 표현하는데 사용)

 


소스예제


import java.text.SimpleDateFormat;
import java.util.Date;
 
public class TestSimpledateformat {
 
    public static void main(String[] args) {
        
        // 포맷 지정        
        SimpleDateFormat  fmt1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        SimpleDateFormat  fmt2 = new SimpleDateFormat("yyyyMMddhhmmss");
        SimpleDateFormat  fmt3 = new SimpleDateFormat("yyyyMMdd");
                
        // 포맷 출력
        System.out.println(fmt1.format(new Date()));
        System.out.println(fmt2.format(new Date()));
        System.out.println(fmt3.format(new Date()));
    }
}
 
cs


출력

2018-05-20 12:46:22

20180520124622

20180520



'프로그래밍 > Java' 카테고리의 다른 글

[Java]BigDecimal 올림 반올림 버림  (0) 2018.08.04
[Java]Spring 한글설정  (0) 2018.07.09
[Java]String, StringBuffer, StringBuilder  (0) 2018.07.07
[Java] String.valueOf와 toString  (0) 2018.05.30
[Java] Calendar  (0) 2018.05.23
Posted by 유령회사
|