C#에서 밀리초 단위로 현재 시간 가져오기

Abdul Mateen 2023년10월12일
  1. 프로그래밍 날짜 및 시간
  2. C#의 밀리초
  3. C#에서 밀리초를 사용하는 코딩 예제
C#에서 밀리초 단위로 현재 시간 가져오기

이 문서에서는 현재 시간을 밀리초 단위로 가져오는 방법을 배웁니다. 시스템 날짜 및 시간을 포함하여 프로그래밍의 날짜 및 시간에 대해 논의합니다.

다음으로 밀리초를 얻는 방법에 대해 설명합니다. 마지막으로 밀리초를 사용하는 몇 가지 프로그래밍 예제에 대해 설명합니다.

프로그래밍 날짜 및 시간

날짜 및 시간은 많은 엔터티의 일부일 수 있습니다. 많은 트랜잭션에는 현재 날짜와 시간이 필요합니다.

예를 들어 판매, 구매, 가입, 반품, 발급 등 많은 프로그램에서 날짜와 시간에 대한 비교 및 계산이 필요합니다.

시니어 회원 찾기, 문제와 반품 사이의 일수, 주문과 배송과 같은 일부 활동 사이의 시간, 경주에서 시작과 교차 사이의 시간, 타이핑 속도 찾기 등과 같은 많은 예를 지정할 수 있습니다.

모든 컴퓨터에는 시스템 시계가 있어 컴퓨터를 끄더라도 활성 상태로 유지됩니다. 거의 모든 프로그래밍 언어는 시스템 데이터 및 시간에 액세스할 수 있는 몇 가지 방법을 제공합니다.

오늘날 전 세계적으로 많은 서버에서 API를 제공하여 코드를 사용하여 날짜와 시간을 가져옵니다.

대부분의 고급 프로그래밍 언어는 날짜와 시간이 모두 있는 단일 개체를 제공합니다. 일반적으로 “지금"이라고합니다. 마찬가지로 C#은 시스템 데이터 및 시간에 액세스하는 다양한 방법을 제공합니다.

예를 참조하십시오.

using System;
class Test {
  static void Main() {
    DateTime date_time = DateTime.Now;
    Console.WriteLine("Welcome, the current date and time is: " +
                      date_time.ToString("MM/dd/yyyy HH:mm:ss"));
  }
}

출력:

Welcome, the current date and time is: 11/05/2022 07:49:27

날짜와 시간에 대한 아이디어를 얻으려면 다음으로 C#에서 밀리초를 얻는 방법에 대해 논의할 것입니다.

C#의 밀리초

C#에는 시간의 순간, 즉 대부분 날짜와 시간을 제공하는 시스템 네임스페이스DateTime 구조가 있습니다. 생성자를 사용하면 날짜-시간 값을 할당하거나 문자열 표현에서 구문 분석하여 객체를 초기화할 수 있습니다.

밀리초 단위로 시간을 나타내는 방법에는 여러 가지가 있습니다. 우리는 그들 중 일부에 대해 논의할 것입니다.

밀리초 속성 사용

DateTime 구조는 주어진 날짜의 밀리초 구성 요소를 가져올 수 있는 밀리초 속성을 제공합니다. 예를 들어:

using System;
class Test {
  static void Main() {
    DateTime date_time = DateTime.Now;
    int ms = date_time.Millisecond;
    Console.WriteLine("The current time is:" + date_time.ToString());
    Console.WriteLine("The current time in milliseconds is: " + ms.ToString());
  }
}

위의 예에서 date_time 개체가 현재 날짜-시간, 즉 millisecond 속성과 함께 사용된 now로 초기화된 것을 볼 수 있습니다. 이 속성은 현재 시간의 밀리초 단위로 정수 값을 반환합니다.

출력:

The current time is:11/05/2022 04:17:00
The current time in milliseconds is: 736

데모 목적으로 현재 날짜와 시간으로 개체를 만들었습니다. 다음은 date_time 개체에서 밀리초를 추출하는 또 다른 방법입니다.

여기서 첫 번째 매개변수는 연도, 두 번째 매개변수는 월, 세 번째 매개변수는 일입니다.

마찬가지로 네 번째 매개변수는 시간, 다섯 번째 매개변수는 분, 여섯 번째 매개변수는 초, 마지막 매개변수는 밀리초입니다.

DateTime date_time = new DateTime(2022, 11, 4, 9, 20, 30, 120);
Console.WriteLine("Milliseconds: {0:fff}", date_time);

코드의 두 번째 줄에는 date_time 값에서 밀리초를 가져오는 형식 지정자를 제공합니다. 형식 지정자에 대한 자세한 내용을 보려면 여기를 클릭하세요.

출력:

Milliseconds: 120

날짜 시간 구문 분석 사용

동일한 클래스의 정적 메서드 Parse를 호출하여 날짜-시간의 문자열 표현을 DateTime 객체로 변환할 수 있습니다. DateTimeOffset의 정적 Parse 메소드를 호출하여 날짜 시간 값을 얻을 수도 있습니다.

다음으로 형식 지정자(이미 논의됨)를 사용하여 밀리초를 가져옵니다. 코드를 참조하십시오:

using System;
class Test {
  static void Main() {
    string date_time_string = "10/23/2022 9:22:50.125 AM";
    DateTime date_time = DateTime.Parse(date_time_string);
    DateTimeOffset date_value = DateTimeOffset.Parse(date_time_string);
    Console.WriteLine("Time in Milliseconds: {0}", date_time.ToString("fff"));
    Console.WriteLine("\nTime in Milliseconds: {0}", date_value.ToString("fff"));
  }
}

위의 코드에서 구문 분석 방법에서 날짜-시간의 문자열 표현을 사용했음을 알 수 있습니다. 그러면 자동으로 해당 날짜-시간으로 변환됩니다.

출력:

Time in Milliseconds: 125
Time in Milliseconds: 125

Unix 시간 방법 사용

밀리초 단위로 시간을 얻는 가장 편리한 방법은 Unix 타임스탬프를 사용하는 것입니다. 이 타임스탬프는 윤초를 제외하고 1970년 1월 00:00:00 UTC(Coordinated Universal Time) 이후 경과된 몇 초를 반환합니다.

C# ToUnixTimeMilliseconds 메서드는 밀리초 단위로 시간을 가져오는 데 사용됩니다. 예를 들어:

DateTimeOffset date = DateTimeOffset.UtcNow;
long milliseconds = date.ToUnixTimeMilliseconds();
Console.WriteLine(milliseconds);

출력:

1667624911885

13분 몇 초 후에 동일한 코드를 실행하고 값을 얻었습니다.

1667625703243

차이점은 791358입니다. 이것을 1000밀리초로 나누면 791.358초가 됩니다. 또한 60초로 나누면 13.1893분이 됩니다.

우리는 이 메서드가 상수 값을 반환하지 않는다는 것을 보여주고 싶습니다. 대신 1970년 1월 이후 경과된 초를 반환합니다.

둘째, 이 방법을 사용하면 값의 차이를 사용하여 일부 기간의 밀리초를 측정할 수 있습니다.

사용자 정의 밀리초 타임스탬프

C#에서 Ticks 속성을 사용하여 시간을 측정할 수도 있습니다. 눈금의 값 범위는 minValuemaxValue 사이에 있습니다.

다음 예제에서는 틱을 사용하여 밀리초 단위로 시간을 가져오는 방법을 보여줍니다.

long timeInMilliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
Console.WriteLine(timeInMilliseconds);

출력:

63803225681236

스톱워치 클래스 사용

C#의 Stopwatch 클래스는 프로그램에서 작업 빈도를 측정하는 데 사용됩니다. 경과 시간을 측정하고 코드 최적화에 도움이 됩니다.

Stopwatch 클래스를 사용하여 시간을 밀리초 단위로 계산할 수 있습니다. 예를 들어:

using System;
using System.Threading;
using System.Diagnostics;
class Test {
  static void Main() {
    Stopwatch st = new Stopwatch();
    st.Start();
    Thread.Sleep(1000);
    st.Stop();
    Console.WriteLine("Time elapsed in Milliseconds: {0}", st.ElapsedMilliseconds);
  }
}

여기서는 System.DiagnosticsStopwatch 클래스를 사용합니다. 시연을 위해 스톱워치를 시작하고 1초 후에 중지해야 합니다.

그 사이에 필요한 모든 작업을 수행할 수 있습니다. 여기에서는 의도적으로 System.Threading에서 Thread 클래스의 Sleep 메서드를 호출했습니다.

Sleep 기능은 start/stop 방법 사이에 시간을 생성합니다. 마지막으로 시작과 중지 사이에 경과된 시간을 나타내는 ElapsedMilliseconds 속성을 인쇄합니다.

출력:

Time elapsed in Milliseconds: 1000

출력에는 Sleep 방법에 소요된 시간이 표시됩니다. Sleep 방법에서 시간을 늘려 이를 다시 확인할 수 있습니다. 다음으로 밀리초를 사용하는 몇 가지 코딩 예제에 대해 논의할 것입니다.

C#에서 밀리초를 사용하는 코딩 예제

프로그램에서 밀리초를 사용하는 몇 가지 코딩 예제가 있습니다.

예 1

먼저 사용자가 입력하는 시간을 계산하는 예가 있습니다. 여기에 코드가 있습니다.

using System;
using System.Threading;
using System.Diagnostics;
class Test {
  static void Main() {
    Stopwatch st = new Stopwatch();
    Console.WriteLine("Start typing without using enter key");
    st.Start();
    Console.ReadLine();
    st.Stop();
    Console.WriteLine("You have typed for {0}", st.ElapsedMilliseconds / 1000 + " seconds");
  }
}

이 코드는 startstop 메소드 사이에서 사용자로부터 입력을 받습니다. 일반적으로 우리는 일부 변수에서 사용자 입력을 받는 반면 스톱워치시작중지 기능 사이에 약간의 시간이 경과하려고 합니다.

마지막 줄에서 경과된 밀리초를 1000으로 나누어 초 수를 계산합니다. 이 코드의 한 샘플 실행은 다음과 같습니다.

Start typing without using enter key
I am just typing and typing and typing
You have typed for 15 seconds

이 출력의 첫 번째 줄은 사용자에게 보내는 메시지입니다. 두 번째 줄에서 사용자는 Enter 키를 누르기 전에 일부 텍스트를 입력하고 있으며 출력의 마지막 줄에는 경과 시간(초)이 표시됩니다.

예 2

이 예에서는 배열을 정렬하는 데 걸리는 시간을 계산합니다. 배열 크기를 10000000으로 선언하고 정렬 함수를 호출하여 배열을 정렬했습니다.

using System;
using System.Threading;
using System.Diagnostics;
class Array_Sort {
  public static void Main() {
    Random rn = new Random();
    int[] arr = new int[10000000];
    for (int i = 0; i < 1000000; i++) arr[i] = rn.Next(0, 50000);
    Stopwatch st = new Stopwatch();
    st.Start();
    Array.Sort(arr);
    st.Stop();
    Console.WriteLine("Sorting time: {0}", st.ElapsedMilliseconds + " milliseconds");
  }
}

여기에서는 어레이를 무작위로 초기화했습니다. 배열을 정렬하기 위해 라이브러리 함수 정렬을 호출합니다.

함수 호출은 startstop 기능 사이에 있습니다.

마지막 줄에는 시작과 중지 사이의 시간인 정렬 시간이 밀리초 단위로 인쇄됩니다.

출력:

Sorting time: 2227 milliseconds

예 3

세 번째 예는 주문 처리 시간을 추적하는 데 밀리초를 사용하는 방법을 보여줍니다. 실제로 이를 수행할 수 있는 공식적인 방법이 있습니다. 그러나 감독자는 주문이 고객에게 전달될 때 키를 입력합니다.

여기에서는 주문 배치와 배송 시간의 차이를 계산합니다.

using System;
class Order_Track {
  public static void Main() {
    DateTimeOffset date = DateTimeOffset.UtcNow;
    DateTime date_time1 = DateTime.Now;
    long order_placed_time = date_time1.Millisecond;
    Console.WriteLine("Press Yes, when order is delivered");
    Console.ReadLine();
    DateTime date_time2 = DateTime.Now;
    long order_deliver_time = date_time2.Millisecond;
    long difference = order_deliver_time - order_placed_time;
    Console.WriteLine("Order process time:" + difference + " milliseconds");
  }
}

세 번째 메인 라인에서는 시스템 시간을 가져와 변수 order_placed_time에 저장했습니다.

다음으로 주문이 배송될 때 감독자 또는 관할 당국에 키를 입력하라는 메시지가 있습니다. 입력 후 시스템 시간을 다시 확인했습니다.

이전 줄에서 이번에는 인쇄하고 있습니다. 마지막으로 두 번째 마지막 줄에서 두 시간의 차이를 계산합니다.

출력:

Press Yes, when order is delivered
Order process time:536 milliseconds

이 기사에서는 날짜와 시간을 종합적으로 살펴 보았습니다. C#에서 밀리초를 얻는 여러 가지 방법에 대해 논의했습니다.

결국 우리는 밀리초 적용의 몇 가지 예를 보았습니다.

관련 문장 - Csharp DateTime