예를 들어 14/02/24 또는 140224등으로 표시하면 2014중 앞 2자리를 잘라내야 하는데

java에서는 주로 format 함수를 사용하거나 문자열일 경우 자리 2자리를 버리는 과정을 거치고는 한다.

다.

   1: package codebasis;
   2:  
   3: import java.text.SimpleDateFormat;
   4: import java.util.Date;
   5:  
   6: import org.junit.Rule;
   7: import org.junit.Test;
   8: import org.junit.rules.TestName;
   9: import org.slf4j.Logger;
  10: import org.slf4j.LoggerFactory;
  11:  
  12: public class DateFormatPracticeTest {
  13:  
  14:     @Rule
  15:     public TestName name = new TestName();
  16:  
  17:     final Logger logger = LoggerFactory.getLogger(DateFormatPracticeTest.class);
  18:     
  19:     @Test
  20:     public void test() {
  21:         // fail("Not yet implemented");
  22:         long currentTimeMillis = System.currentTimeMillis();
  23:         Date date = new Date(currentTimeMillis);
  24:         
  25:         logger.info(name.getMethodName() + "-------- start");
  26:         logger.info(Long.toString(currentTimeMillis));
  27:         logger.info(date.toString());
  28:         
  29:         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
  30:         logger.info(sdf.format(date));
  31:         
  32:         sdf = new SimpleDateFormat("yy");
  33:         logger.info(sdf.format(date));
  34:         
  35:         sdf = new SimpleDateFormat("yyyy");
  36:         String formatedYear = sdf.format(date);
  37:         logger.info("Stirng formated Year = " + formatedYear);
  38:         long yearValue = Long.parseLong(formatedYear);
  39:         logger.info("long Valued Year = " + formatedYear);
  40:         
  41:         yearValue = yearValue % 100;
  42:         logger.info(String.valueOf(yearValue));
  43:         
  44:         logger.info(name.getMethodName() + "-------- end");
  45:     }
  46:  
  47: }
   1: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   2:     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   3:     <modelVersion>4.0.0</modelVersion>
   4:     <groupId>codebasis</groupId>
   5:     <artifactId>CodePractice</artifactId>
   6:     <version>0.0.1-SNAPSHOT</version>
   7:     <properties>
   8:         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   9:     </properties>
  10:     <dependencies>
  11:         <dependency>
  12:             <groupId>junit</groupId>
  13:             <artifactId>junit</artifactId>
  14:             <version>4.8.1</version>
  15:             <scope>test</scope>
  16:         </dependency>
  17:         <dependency>
  18:             <groupId>org.slf4j</groupId>
  19:             <artifactId>slf4j-api</artifactId>
  20:             <version>1.7.6</version>
  21:         </dependency>
  22:         <dependency>
  23:             <groupId>org.slf4j</groupId>
  24:             <artifactId>slf4j-simple</artifactId>
  25:             <version>1.7.6</version>
  26:         </dependency>
  27:     </dependencies>
  28: </project>

 

작성하다 보니 역시 익숙한 SimpleDateFormat을 사용하면 간단합니다.

반면에 long 형의 연도를 받았다면 예를 들어 2014에서 뒷자리 두자리만 남기려면 2014 % 100하면 됩니다.

 

참고 : Long 과 long 을 간혹 혼용하시는 경우가 있는데 같아 보이지만 다른 용도로 사용됩니다.

Long은 객체(클래스)이고 long은 변수입니다.

 

Posted by twintail twintail