ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] Formatter
    언어/JAVA 2022. 9. 8. 10:43
    public class Formatter01 {
    	public static void main(String[] args) {	
    		// 날짜 데이터 클래스, Calendar 와는 다름
    		Date today = new Date();  //java.util.Date
    		System.out.println(today);
    		
    		// 날짜 서식 클래스
    		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
    		// 날짜 데이터를 서식 데이터에 맞춰서 적용후 출력
    		System.out.println(    sdf1.format( today )    );
    
    		// 날짜 서식 레퍼런스 변수들
    		SimpleDateFormat sdf2, sdf3, sdf4, sdf5, sdf6, sdf7, sdf8, sdf9;
    		
    		// 서식 인스턴스 생성 및 저장
    		sdf2 = new SimpleDateFormat("yy년 MM월 dd일 E요일");
    		sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    		sdf4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
    		
    		// today 적용후 출력
    		System.out.println(sdf2.format(today));
    		System.out.println(sdf3.format(today));
    		System.out.println(sdf4.format(today));
    		
    		// y : 년도를 표시할 자리수 문자(yyyy:2020  yy:20)
    		// M : 월을 표시할 자리수 문자 (MM:01~12  M:1~12)
    		// d : 일을 표시하는 자리수 문자 (dd: 01~31  d:1~31)
    		// H : 시에 해당하는 자리수 문자(HH : 01~23  H:1~23)
    		// h : 시에 해당하는 자리수 문자(hh : 01~12  h:1~12)
    		// m : 분   
    		//s : 초   
    		//S : 밀리초   
    		// a : 오전/오후
            
    		sdf5 = new SimpleDateFormat("오늘은 올 해의 D번째 날입니다.");
    		sdf6 = new SimpleDateFormat("오늘은 이 달의 d번째 날입니다.");
    		sdf7 = new SimpleDateFormat("오늘은 올 해의 w번째 주입니다.");
    		sdf8 = new SimpleDateFormat("오늘은 이 달의 W번째 주입니다.");
    		sdf9 = new SimpleDateFormat("오늘은 이 달의 F번째 E요일입니다.");
    		
    		System.out.println(sdf5.format(today));
    		System.out.println(sdf6.format(today));
    		System.out.println(sdf7.format(today));
    		System.out.println(sdf8.format(today));
    		System.out.println(sdf9.format(today));
    		
    		Calendar cal = Calendar.getInstance();
    		Date day = cal.getTime();   // Calendar 객체의 현재 날짜값을 Date 값으로 변환
    		sdf1 = new SimpleDateFormat("yyyy-MM-dd");
    		sdf2 = new SimpleDateFormat("yy-MM-dd E요일");
    		sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    		sdf4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
    		System.out.println(sdf1.format(day)); // format(Date d)
    		System.out.println(sdf2.format(day));
    		System.out.println(sdf3.format(day));
    		System.out.println(sdf4.format(day));
    	}
    }
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Formatter02 {
    	public static void main(String[] args) throws ParseException {
    		String s2 = "2020/11/24";
    		SimpleDateFormat sdf1= new SimpleDateFormat("yyyy/MM/dd");
    		
    		// SimpleDateFormat에는 parse메서드를 이용하여 문자열을 날짜로 변환해주는 기능이 있음
    		// 다만 변환을 위해서는 설정된 서식을 반드시 지켜야하는 제약이 있음
    				
    		Date d = sdf1.parse(s2);
    		// parse를 이용해서 Date 형식으로 변경이 되어야 아래의 포맷적용이 가능
    		SimpleDateFormat sdf2= new SimpleDateFormat("yyyy년 MM월 dd일");
    		System.out.println(sdf2.format(d));
    	}
    }
    public class Formatter03 {
    	public static void main(String[] args) {
    		DecimalFormat df = new DecimalFormat("0000.00");
    		double number  = 123.123456;
    		System.out.printf("%19s : %f  -->  %s\n", "0000.00", number, df.format(number));
    
    		// 양식문자 0 : 표시할 숫자들의 자리 표현. 0:숫자 한자리  00:숫자두자리  등
    		// 정수부분에서 표시할 숫자는 많은데 0의 갯수가 모자르면 필요한 만큼 0의 갯수를 자동 추가 적용
    		// 숫자 12345, 양식 "000"  -> 표시 12345
    		// 숫자자리수보다 0의 갯수가 많으면 많은 만큼 0으로 채워서 표시 
    		// 숫자 123, 양식 "00000" -> 표시 00123
    		// 소수점 아래에 대해서는 반대로 0의 갯수만큼만 소수점 아래 자리수를 표시.
    		// 0갯수로 인해 표시되지 못하는 소수점 자리 중 가장 윗자리에서 반올림
    		// 남는 자리에 강제로0 으로 채우는 방식은 동일  
    		// 0.1264(0.00)->0.13   0.1(0.00) -> 0.10
    		
    		number  = 123456.71289;
    		df = new DecimalFormat("0.000");
    		System.out.printf("%19s : %f ->  %s\n", "0.000", number, df.format(number));
    		
    		number  = 123456789.0;
    		// 천단위 구분기호 표시 패턴 0,000,000
    		df = new DecimalFormat("0,000.00");  
    		System.out.printf("%19s : %f ->  %s\n",	"0,000.00", number, df.format(number));
    		// 소수점아래로 표시할 내용이 없는데 양식에 소수점 자리 0이 있다면 강제0으로 표시
    		
    		df = new DecimalFormat("0,000");
    		number  = 89.0;
    		System.out.printf("%19s : %f ->  %s\n", "0,000",number, df.format(number));
    		
    		// 무효의 0을 표시하지 않는 #을 0대신 사용
    		df = new DecimalFormat("#,###"); 
    		System.out.printf("%19s : %f ->  %s\n", "#,###",number, df.format(number));
    		// 10의 자리든 100의 자리든 표시할 숫자가 있을때만 표시 - 강제 0표시 안함
    		// 표시할 숫자가 1000 을 넘어갈때만 (,)를표시
    		number  = 123456.0;
    		System.out.printf("%19s : %f ->  %s\n", "#,###",number, df.format(number));
    		
    		// #을 이용한 소수점 표시  : # 의갯수보다 표시할 숫자가 많으면 # 갯수만큼 표시
    		// # 의 갯수보다 표시할 숫자가 적으면 숫자있는 만큼만 표시
    		number  = 123456.7128;
    		df = new DecimalFormat("#,###.###");
    		System.out.printf("%19s : %f ->  %s\n",	"#,###.###",number, df.format(number));
    		number  = 123456.7;
    		System.out.printf("%19s : %f ->  %s\n",	"#,###.###",number, df.format(number));
    		
    		number = 1234;
    		df = new DecimalFormat("₩ #,### 원"); // 단위 또는 기호 첨가
    		System.out.printf("%19s : %f ->  %s\n", "#,### 원",number, df.format(number));	
    		
    		number = 0.8539;
    		df = new DecimalFormat("#.#%"); //100을 곱해서 %로 표시
    		System.out.printf("%19s : %f ->  %s\n", "#.#%",number, df.format(number));
    		
    		number = 123.172839;
    		System.out.println("123.172839 ->" + (int)(number*10)/10.0);
    		df = new DecimalFormat("0.0");
    		System.out.println("123.172839 ->" + df.format(number));
    	}
    }

    '언어 > JAVA' 카테고리의 다른 글

    [JAVA] Interface  (3) 2022.09.08
    [JAVA] Abstract(추상클래스)  (0) 2022.09.08
    [JAVA] Collection  (0) 2022.09.08
    [JAVA] String Class  (0) 2022.09.08
    [JAVA] Calendar Class  (0) 2022.09.08

    댓글

Designed by Tistory.