본문 바로가기
소소한 C# 지식

[C#]데이터 포맷(Data Format) 형식 변경 - 숫자, 일자, 시간

by 해뤼맘 2022. 4. 14.
728x90
반응형

C# Winform 프로그램 개발을 하다 보면,

데이터 포맷 변환해야 할 상황이 생각보다 많이 생깁니다.

사용할 때마다 포맷을 변경하여도 좋지만,

많이 사용해야 할 경우 데이터 포맷 클래스를 생성하여 메서드를 호출하는 형태로 사용할 수 있도록

하는 예제를 보여드리겠습니다.

 

1. C# 자연수 포맷 (천 단위 구분자(,) 추가) 변환

  • 숫자로만 구성된 문자열 사용(음수는 제외)
  • 해당 코드를 활용하여 천 단위 구분자(,)를 제거하는 메서드 생성도 가능
public static string SetNumberFormat(string str)
        {
            if (!string.IsNullOrWhiteSpace(str) && str.All(char.IsDigit))
            {
                return string.Format("{0:N0}", double.Parse(str));
            }
            else
            {
                // 문자열에 숫자외 다른 문자가 포함되어있을 경우, 음수가 포함되었을 경우
               
                return "0";
            }
        }

 

2. C# 음수 포맷 (천 단위 구분자(,) 추가) 변환

    public static string SetNumberFormat(int value)
        {
            return string.Format("{0:N0}", value);
        }

 

3. C# 일자 형식 변환

 public static string SetDateFormat(string date, string format = "yyyy-MM-dd")
        {
            if (format == "yyyy-MM-dd")
            {
                return $"{date.Substring(0, 4)}-{date.Substring(4, 2)}-{date.Substring(6, 2)}";
            }
            else if (format == "yyyy-MM-dd HH:mm:ss")
            {
                return $"{date.Substring(0, 4)}-{date.Substring(4, 2)}-{date.Substring(6, 2)} {date.Substring(8, 2)}:{date.Substring(10, 2)}:{date.Substring(12, 2)}";
            }
            else
            {
                return date;
            }
        }

 

4. C# 시간 포맷 변환

  • 시간 정보가 담긴 문자열을 지정한 포맷으로 변경하는 메서드
  public static string SetTimeFormat(string target, string format = "HH:mm:ss")
        {
            var result = "";
            if (format == "HH:mm")
            {
                if (target.Length != 4)
                {
                    //포맷팅 불가
                    return target;

                }

                result = $"{target.Substring(0, 2)}:{target.Substring(2, 2)}";
            }
            else if (format == "HH:mm:ss")
            {
                if (target.Length != 6)
                {
                    //포맷팅 불가
                    return target;
                }
                result = $"{target.Substring(0, 2)}:{target.Substring(2, 2)}:{target.Substring(4, 2)}";
            }
            return result;
        }

 

위 4가지 예제의 결과입니다.

Data Format manager
데이터 포맷(Data Formating) 결과

 

해당 코드를 응용하여 숫자, 일자, 시간 여러 가지 형태로 변경하여 사용할 수 있습니다.

 

728x90
반응형

댓글