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
속성을 사용하여 시간을 측정할 수도 있습니다. 눈금의 값 범위는 minValue
와 maxValue
사이에 있습니다.
다음 예제에서는 틱을 사용하여 밀리초 단위로 시간을 가져오는 방법을 보여줍니다.
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.Diagnostics
의 Stopwatch
클래스를 사용합니다. 시연을 위해 스톱워치를 시작하고 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");
}
}
이 코드는 start
및 stop
메소드 사이에서 사용자로부터 입력을 받습니다. 일반적으로 우리는 일부 변수에서 사용자 입력을 받는 반면 스톱워치
의 시작
과 중지
기능 사이에 약간의 시간이 경과하려고 합니다.
마지막 줄에서 경과된 밀리초를 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");
}
}
여기에서는 어레이를 무작위로 초기화했습니다. 배열을 정렬하기 위해 라이브러리 함수 정렬
을 호출합니다.
함수 호출은 start
와 stop
기능 사이에 있습니다.
마지막 줄에는 시작과 중지 사이의 시간인 정렬 시간이 밀리초 단위로 인쇄됩니다.
출력:
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#에서 밀리초를 얻는 여러 가지 방법에 대해 논의했습니다.
결국 우리는 밀리초 적용의 몇 가지 예를 보았습니다.