GMT는 그리니치 자오선 표준시 (Greenwich Meridian Time)의 머리 글자이며 세계의 기준 시간입니다. 영국 그리니치의 시간이며 “줄루 시간”이라고도합니다. (Zulu는 0의 음성 이름이고 0은 영국 그리니치의 경도를 나타냅니다.)

워크 시트에서 현지 시간을 GMT로 변환해야 할 수도 있습니다. 시간이 현지 시간으로 입력된다는 것을 항상 알고 있다면 공식을 사용하면 매우 쉽게 수행 할 수 있습니다. 예를 들어, B7 셀에 현지 시간을 입력하고 태평양 시간대에 있다고 가정합니다. 이 시간대에서는 일광 절약 시간이 적용되는지 여부에 따라 GMT보다 7 시간 또는 8 시간 늦습니다. 다음 공식은 시간과 관련된 날짜가 일광 절약 시간 기간 내에 있는지 여부에 따라 B7에 입력 된 시간을 7 시간 또는 8 시간 조정합니다.

=IF(AND(B7>=DATEVALUE("3/8/2009 02:00"),B19<= DATEVALUE("11/01/2009 02:00")),B7+7/24,B7+8/24)

셀에 시간을 입력 할 때마다 Excel은 자동으로 날짜를 첨부합니다. 따라서 셀에 10:15의 시간을 입력하고 입력 한 날짜가 1 월 17 일이면 Excel에서 자동으로 셀의 항목을 2009 년 1 월 17 일 10:15:00로 변환합니다. 이 작업은 셀에 시간 만 표시하는 경우에도 수행됩니다. Excel에서는 모든 날짜에 연결된 시간이 있고 모든 시간에는 연결된 날짜가 있습니다.

이러한 입력 동작으로 인해 Excel은 사용자가 시간 (오늘 날짜) 또는 명시 적으로 입력 할 수있는 날짜를 입력 할 때 기본 날짜를 기반으로 적절한 조정을 수행하기 위해 방금 표시된 수식을 사용합니다.

이 공식적인 접근 방식의 유일한 단점은 일광 절약 시간 경계 날짜를 매년 변경해야한다는 것입니다.

(수식에있는 것은 2009 년용입니다.) 다음과 같이 E1 및 E2와 같은 셀에 경계 날짜를 실제로 저장하도록 수식을 변경할 수 있습니다.

=IF(AND(B7>=$E$1,B19<=$E$2),B7+7/24,B7+8/24)

공식은 더 짧지 만 일광 절약 시간이 시작되고 끝나는시기를 정적으로 결정하는 데 여전히 문제가 있습니다. 해당 정보를 수동으로 업데이트해야합니다. 또한 다른 시간대로 이동하는 경우 날짜와 시간이 조정되는 값을 수정해야합니다.

이러한 단점을 해결하는 정말 편리한 방법은 Windows 인터페이스에 액세스하고 컴퓨터의 시스템 설정을 결정하는 사용자 정의 함수를 만드는 것입니다. 시스템은 일광 절약 시간과 사용자의 시간대를 자동으로 추적합니다. 사용자 정의 함수를 통해이 정보에 액세스하면 워크 시트의 해당 항목에 대해 걱정할 필요가 없습니다. 다음 매크로를 사용하여이를 수행 할 수 있습니다.

Option Explicit

Public Declare Function SystemTimeToFileTime Lib _   "kernel32" (lpSystemTime As SYSTEMTIME, _   lpFileTime As FILETIME) As Long

Public Declare Function LocalFileTimeToFileTime Lib _   "kernel32" (lpLocalFileTime As FILETIME, _   lpFileTime As FILETIME) As Long

Public Declare Function FileTimeToSystemTime Lib _   "kernel32" (lpFileTime As FILETIME, lpSystemTime _   As SYSTEMTIME) As Long

Public Type FILETIME     dwLowDateTime As Long     dwHighDateTime As Long End Type

Public Type SYSTEMTIME     wYear As Integer     wMonth As Integer     wDayOfWeek As Integer     wDay As Integer     wHour As Integer     wMinute As Integer     wSecond As Integer     wMilliseconds As Integer End Type

Public Function LocalTimeToUTC(dteTime As Date) As Date     Dim dteLocalFileTime As FILETIME     Dim dteFileTime As FILETIME     Dim dteLocalSystemTime As SYSTEMTIME     Dim dteSystemTime As SYSTEMTIME

dteLocalSystemTime.wYear = CInt(Year(dteTime))

dteLocalSystemTime.wMonth = CInt(Month(dteTime))

dteLocalSystemTime.wDay = CInt(Day(dteTime))

dteLocalSystemTime.wHour = CInt(Hour(dteTime))

dteLocalSystemTime.wMinute = CInt(Minute(dteTime))

dteLocalSystemTime.wSecond = CInt(Second(dteTime))



Call SystemTimeToFileTime(dteLocalSystemTime, _       dteLocalFileTime)

Call LocalFileTimeToFileTime(dteLocalFileTime, _       dteFileTime)

Call FileTimeToSystemTime(dteFileTime, dteSystemTime)



LocalTimeToUTC = CDate(dteSystemTime.wMonth & "/" & _       dteSystemTime.wDay & "/" & _       dteSystemTime.wYear & " " & _       dteSystemTime.wHour & ":" & _       dteSystemTime.wMinute & ":" & _       dteSystemTime.wSecond)

End Function

시스템 호출로 작업 할 때 종종 그렇듯이 이것은 당당하게 보일 수 있지만 훌륭하게 작동합니다. 참조되는 세 가지 시스템 루틴 (SystemTimeToFileTime, LocalFileTimeToFileTime 및 FileTimeToSystemTime)이 있습니다. 통화를 설정하고 순서대로 사용하면 날짜와 시간이 자동으로 GMT로 조정됩니다. 함수를 사용하려면 워크 시트에 다음을 입력하여 B7 셀의 시간을 변환합니다.

=localtimetoutc(B7)

셀을 날짜 / 시간 형식으로 지정하면 원하는대로 출력됩니다.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2185)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excelribbon-Automatically_Converting_to_GMT [GMT로 자동 변환].