문제

새로 만들 때 Date 체,초기화하여 현재 시간이지만 현지 시간대.어떻게 받을 수 있는 현재 날짜와 시간 GMT?

도움이 되었습니까?

해결책

java.util.Date 값은 UTC와 관련하여 가장 일반적으로 생각되지만 특정 시간대가 없습니다. 현지 시간에 있다고 생각하는 이유는 무엇입니까?

정확하게 : a java.util.Date 1970 년 1 월 1 일 자정에 UTC. 동일한 시대는 다른 시간 영역에서도 설명 될 수 있지만 전통적인 설명은 UTC 측면에서입니다. 고정 시대 이후 여러 밀리 초이므로 내부의 값은 java.util.Date 현지 시간대에 관계없이 특정 순간에서 전 세계에서 동일합니다.

문제는 로컬 타임 존을 사용하는 캘린더 인스턴스를 통해 표시하거나 Date.toString() 로컬 타임 존을 사용하거나 a SimpleDateFormat 기본적으로 로컬 타임 존을 사용하는 인스턴스.

이것이 문제가되지 않으면 샘플 코드를 게시하십시오.

그러나 나는 당신이 사용하는 것이 좋습니다 조다-시간 어쨌든 훨씬 더 명확한 API를 제공합니다.

다른 팁

SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));

//Local time zone   
SimpleDateFormat dateFormatLocal = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");

//Time in GMT
return dateFormatLocal.parse( dateFormatGmt.format(new Date()) );

tl;박사

Instant.now()   // Capture the current moment in UTC. 

생성한 문자열을 나타내는 값:

Instant.now().toString()  

2016-09-13T23:30:52.123Z

상세정보

올바른 답을 존 스키트 명,java.util.날짜 객체가 시간 영역.하지만 그 toString 구현을 적용합 JVM 의 기본 표준 시간대를 생성할 때 문자열의 표현하는 날짜간 값입니다.혼동을 일으킬 정도의 순진한 프로그래머,Date 하는 표준 시간대 그러하지 않습니다.

java.util.Date, j.u.Calendar, 고 java.text.SimpleDateFormat 클래스에 번들로 제공 Java 악명이 곤란합니다. 들을 정확하게 배치할 수 있습니다. 대신,사용하거나 이들의 유능한 날짜임 라이브러리:

java.시간(Java8)

Java8 제공하는 우수한 새로운 java.시간입니다.* 패키지 을 대신하는 오래된 java.util.날짜/캘린더는 클래스입니다.

점점에서 현재 시간 UTC/GMT 는 단순한 하나-라이너...

Instant instant = Instant.now();

Instant 클래스는 기본적인 빌딩 블록에서 java.시간을 나타내는 순간의 타임라인에서 UTC 해상도 나노초.

Java8,현재 순간을 캡처와까지만 밀리초 단위 해상도입니다. Java9 가 구현Clock 류 순간 최대 전체 나노초의 기능을 이 클래스에 따라 기능의 호스트 컴퓨터 시계 하드웨어입니다.

toString 메서드를 생성한 문자열의 표현 그 값을 사용하여 특정 ISO8601 형식.는 형식으로 출력,제로 세 가지,육 또는 나인 자리 숫자(밀리초 단위, 마이크로초 단위로, 나 나노초)필요에 따라 나타내는 부분의 두 번째입니다.

당신이 더 많은 것을 원하는 경우 가동 가능한 포맷,또는 다른 추가적인 기능을 적용한 오프셋에서 UTC 의 제한 UTC 자체(ZoneOffset.UTC 일정)을 얻 OffsetDateTime.

OffsetDateTime now = OffsetDateTime.now( ZoneOffset.UTC );

덤프하는 콘솔...

System.out.println( "now: " + now );

실행하면...

now: 2014-01-21T23:42:03.522Z

Table of types of date-time classes in modern java.time versus legacy.

Java.시간 클래스에 의해 정의 JSR310.그들이 영감을 받았다 Joda-시간지만 완전히 다시 설계.

Joda 간

업데이트:이 Joda 간 프로젝트에 지금 정비 모드, 지 마이그레이션 java.시간 클래스입니다.

를 사용하는 Joda 간 3 자 오픈 소스의 비용-무료 라이브러리,당신이 얻을 수 있는 현재 날짜간만에 한 줄의 코드입니다.

Joda 간에 영감을 새로운 java.시간입니다.* 클래스 Java8 지만,다른 건물입니다.당신이 사용할 수 있습 Joda 간의 이전 버전에서 Java.Joda-시간을 계속 작업에서 Java8 고 계속해서 적극적으로 유지(2014 년 기준).그러나,Joda 간 팀은 조언이의 마이그레이션 java.시간입니다.

System.out.println( "UTC/GMT date-time in ISO 8601 format: " + new org.joda.time.DateTime( org.joda.time.DateTimeZone.UTC ) );

더 자세한 예제 코드(Joda 간 2.3)...

org.joda.time.DateTime now = new org.joda.time.DateTime(); // Default time zone.
org.joda.time.DateTime zulu = now.toDateTime( org.joda.time.DateTimeZone.UTC );

덤프하는 콘솔...

System.out.println( "Local time in ISO 8601 format: " + now );
System.out.println( "Same moment in UTC (Zulu): " + zulu );

실행하면...

Local time in ISO 8601 format: 2014-01-21T15:34:29.933-08:00
Same moment in UTC (Zulu): 2014-01-21T23:34:29.933Z

더 많은 예제 코드는 일을 시간대 작업을 참조하십시오 나의 답변 비슷한 질문입니다.

시간대

나는 좋은 당신이 항상 지정 시간대에 의존하기보다는 암시적으로에서 JVM 현재의 기본 표준 시간대(을 변경할 수 있습니다 어느 순간에!).이러한 의존도 될 것으로 보인의 일반적인 원인이 혼란과 버그에서 날짜간 작동합니다.

를 호출할 때 now() 패 원/예상 시간 영역을 할당됩니다.사 DateTimeZone 클래스입니다.

DateTimeZone zoneMontréal = DateTimeZone.forID( "America/Montreal" );
DateTime now = DateTime.now( zoneMontréal );

는 등 보유 일정에 대한 UTC 시간대에 있습니다.

DateTime now = DateTime.now( DateTimeZone.UTC );

당신이 진정으로 사용하려는 JVM 현재의 기본 표준 시간대,명시적으로 호출므로 코드를 자동으로 문서화.

DateTimeZone zoneDefault = DateTimeZone.getDefault();

ISO8601

에 대해 읽어 ISO8601 형식입니다.모두 java.시간 Joda 간 사용하는 표준의 합리적 형식으로 그들의 기본값은 모두에 대한 구문 분석하고 생성하는 문자열입니다.


실제로,java.util.날짜 시간 영역에 깊이 묻혀서 레이어의 소스 코드입니다.가장 실용적인 목적을 위해,그간 영역은 무시됩니다.그래서,속기,우리는 말 java.util.날짜가 없습니다.또한,묻혀 시간 영역 용한 날짜 toString 방법;는 방법을 사용하 JVM 현재의 기본 표준 시간대.모든 이유가 더 이를 방지하기 위해 혼란스 클래스와 지팡이와 함께 Joda 간 java.시간입니다.

이것은 확실히 UTC 시간을 반환합니다 : 문자열과 날짜 개체!

static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

public static Date getUTCdatetimeAsDate() {
    // note: doesn't check for null
    return stringDateToDate(getUTCdatetimeAsString());
}

public static String getUTCdatetimeAsString() {
    final SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
    final String utcTime = sdf.format(new Date());

    return utcTime;
}

public static Date stringDateToDate(String StrDate) {
    Date dateToReturn = null;
    SimpleDateFormat dateFormat = new SimpleDateFormat(DATEFORMAT);

    try {
        dateToReturn = (Date)dateFormat.parse(StrDate);
    }
    catch (ParseException e) {
        e.printStackTrace();
    }

    return dateToReturn;
}
    Calendar c = Calendar.getInstance();
    System.out.println("current: "+c.getTime());

    TimeZone z = c.getTimeZone();
    int offset = z.getRawOffset();
    if(z.inDaylightTime(new Date())){
        offset = offset + z.getDSTSavings();
    }
    int offsetHrs = offset / 1000 / 60 / 60;
    int offsetMins = offset / 1000 / 60 % 60;

    System.out.println("offset: " + offsetHrs);
    System.out.println("offset: " + offsetMins);

    c.add(Calendar.HOUR_OF_DAY, (-offsetHrs));
    c.add(Calendar.MINUTE, (-offsetMins));

    System.out.println("GMT Time: "+c.getTime());

실제로 시간은 아니지만 표현이 변경 될 수 있습니다.

SimpleDateFormat f = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
f.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(f.format(new Date()));

지구의 어느 시점에서도 시간은 동일하지만 위치에 따라 시간에 대한 인식이 다를 수 있습니다.

Calendar agmtcalendar = calendar.getInstance (timezone.gettimezone ( "gmt")); Agmtcalendar 객체를 사용하여 수행 된 모든 작업은 GMT 시간대와 함께 수행되며 일광 절약 시간 또는 고정 오프셋이 적용되지 않습니다.

잘못된!

Calendar aGMTCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
aGMTCalendar.getTime(); //or getTimeInMillis()

그리고

Calendar aNotGMTCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT-2"));aNotGMTCalendar.getTime();

동시에 돌아올 것입니다. IDEM

new Date(); //it's not GMT.

이 코드는 현재 시간 UTC를 인쇄합니다.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;


public class Test
{
    public static void main(final String[] args) throws ParseException
    {
        final SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
        f.setTimeZone(TimeZone.getTimeZone("UTC"));
        System.out.println(f.format(new Date()));
    }
}

결과

2013-10-26 14:37:48 UTC

이것은 Android에서 UTC 밀리 초를 얻는 데 효과적입니다.

Calendar c = Calendar.getInstance();
int utcOffset = c.get(Calendar.ZONE_OFFSET) + c.get(Calendar.DST_OFFSET);  
Long utcMilliseconds = c.getTimeInMillis() + utcOffset;

다음은 잘못된 것 같습니다 Jon Skeet의 대답. 그는 말했다 :

java.util.Date 항상 UTC에 있습니다. 현지 시간에 있다고 생각하는 이유는 무엇입니까? 문제는 로컬 타임 존을 사용하는 캘린더 인스턴스를 통해 표시하거나 Date.toString() 또한 로컬 타임 존을 사용합니다.

그러나 코드 :

System.out.println(new java.util.Date().getHours() + " hours");

NO를 사용하여 GMT (UTC 시간)가 아닌 현지 시간을 제공합니다. Calendar 그리고 아니요 SimpleDateFormat 조금도.

그래서 무언가가 잘못된 것 같습니다.

응답을 구성하는 코드 :

System.out.println(Calendar.getInstance(TimeZone.getTimeZone("GMT"))
                           .get(Calendar.HOUR_OF_DAY) + " Hours");

현지 시간 대신 GMT 시간을 보여줍니다. getTime.getHours() 그것이 생성 될 것이기 때문에 누락되었습니다 Date() 이론적으로 날짜를 GMT에 저장하지만 현지 시간대의 시간을 돌려주는 물체.

UTC에 맞게 필드가있는 날짜 개체를 원한다면 이렇게 할 수 있습니다. 조다 시간:

import org.joda.time.DateTimeZone;
import java.util.Date;

...

Date local = new Date();
System.out.println("Local: " + local);
DateTimeZone zone = DateTimeZone.getDefault();
long utc = zone.convertLocalToUTC(local.getTime(), false);
System.out.println("UTC: " + new Date(utc));

당신이 사용할 수있는:

Calendar aGMTCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

그런 다음 AgmtCalendar 객체를 사용하여 수행 된 모든 작업은 GMT 시간대와 함께 수행되며 일광 절약 시간 또는 고정 오프셋이 적용되지 않습니다. 이전 포스터는 날짜 () 객체가 항상 GMT를 반환하는 것이 맞다고 생각합니다. 날짜 개체가 로컬 타임 존으로 변환되는 날짜 개체로 무언가를하기 전까지는 그렇지 않습니다.

SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MM-dd");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(dateFormatGmt.format(date));

이것을 직접 사용할 수 있습니다

SimpleDateFormat dateFormatGmt = new SimpleDateFormat("dd:MM:yyyy HH:mm:ss");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(dateFormatGmt.format(new Date())+"");

와 함께:

Calendar cal = Calendar.getInstance();

그 다음에 cal 현재 날짜와 시간이 있습니다.
다음과 같이 현재 날짜와 시간을 얻을 수 있습니다.

Calendar cal2 = Calendar.getInstance(TimeZone.getTimeZone("GMT-2"));

당신은 물어볼 수 있습니다 cal.get(Calendar.DATE); 또는 기타 달력에 대한 다른 세부 사항에 대한 다른 달력.
날짜와 타임 스탬프는 Java에서 더 이상 사용되지 않습니다. 캘린더 클래스는 그렇지 않습니다.

여기에서 GMT 타임 스탬프 객체를 얻기위한 다른 제안 :

import java.sql.Timestamp;
import java.util.Calendar;

...

private static Timestamp getGMT() {
   Calendar cal = Calendar.getInstance();
   return new Timestamp(cal.getTimeInMillis()
                       -cal.get(Calendar.ZONE_OFFSET)
                       -cal.get(Calendar.DST_OFFSET));
}

다음은 문자열 형식으로 GMT 시간을 얻는 또 다른 방법입니다.

String DATE_FORMAT = "EEE, dd MMM yyyy HH:mm:ss z" ;
final SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String dateTimeString =  sdf.format(new Date());

특정 시간대와 특정 형식에서 시스템 시간을 렌더링하는 샘플 코드.

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class TimZoneTest {
    public static void main (String[] args){
        //<GMT><+/-><hour>:<minutes>
        // Any screw up in this format, timezone defaults to GMT QUIETLY. So test your format a few times.

        System.out.println(my_time_in("GMT-5:00", "MM/dd/yyyy HH:mm:ss") );
        System.out.println(my_time_in("GMT+5:30", "'at' HH:mm a z 'on' MM/dd/yyyy"));

        System.out.println("---------------------------------------------");
        // Alternate format 
        System.out.println(my_time_in("America/Los_Angeles", "'at' HH:mm a z 'on' MM/dd/yyyy") );
        System.out.println(my_time_in("America/Buenos_Aires", "'at' HH:mm a z 'on' MM/dd/yyyy") );


    }

    public static String my_time_in(String target_time_zone, String format){
        TimeZone tz = TimeZone.getTimeZone(target_time_zone);
        Date date = Calendar.getInstance().getTime();
        SimpleDateFormat date_format_gmt = new SimpleDateFormat(format);
        date_format_gmt.setTimeZone(tz);
        return date_format_gmt.format(date);
    }

}

산출

10/08/2011 21:07:21
at 07:37 AM GMT+05:30 on 10/09/2011
at 19:07 PM PDT on 10/08/2011
at 23:07 PM ART on 10/08/2011

이것을 더 간단하게 만들기 위해 a Date 안에 UTC 당신이 사용할 수있는 Calendar :

Calendar.getInstance(TimeZone.getTimeZone("UTC"));

새로운 인스턴스를 구성합니다 Calendar "UTC"사용 TimeZone.

필요한 경우 Date 그 캘린더에서 객체를 사용할 수 있습니다 getTime().

UTC에서 현재 데이터 타임 변환 :

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

DateTimeZone dateTimeZone = DateTimeZone.getDefault(); //Default Time Zone

DateTime currDateTime = new DateTime(); //Current DateTime

long utcTime = dateTimeZone.convertLocalToUTC(currDateTime .getMillis(), false);

String currTime = formatter.print(utcTime); //UTC time converted to string from long in format of formatter

currDateTime = formatter.parseDateTime(currTime); //Converted to DateTime in UTC

Toutc의 구현은 다음과 같습니다.

    public static Date toUTC(Date date){
    long datems = date.getTime();
    long timezoneoffset = TimeZone.getDefault().getOffset(datems);
    datems -= timezoneoffset;
    return new Date(datems);
}

아마도 그것을 개선하는 방법에는 여러 가지가 있지만 나에게 효과적입니다.

이것은 나를 위해 일했고, GMT에서 타임 스탬프를 반환합니다!

    Date currDate;
    SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
    dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));
    SimpleDateFormat dateFormatLocal = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");

    long currTime = 0;
    try {

        currDate = dateFormatLocal.parse( dateFormatGmt.format(new Date()) );
        currTime = currDate.getTime();
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

이 클래스를 사용하여 온라인 NTP 서버에서 올바른 UTC 시간을 얻으십시오.

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;


class NTP_UTC_Time
{
private static final String TAG = "SntpClient";

private static final int RECEIVE_TIME_OFFSET = 32;
private static final int TRANSMIT_TIME_OFFSET = 40;
private static final int NTP_PACKET_SIZE = 48;

private static final int NTP_PORT = 123;
private static final int NTP_MODE_CLIENT = 3;
private static final int NTP_VERSION = 3;

// Number of seconds between Jan 1, 1900 and Jan 1, 1970
// 70 years plus 17 leap days
private static final long OFFSET_1900_TO_1970 = ((365L * 70L) + 17L) * 24L * 60L * 60L;

private long mNtpTime;

public boolean requestTime(String host, int timeout) {
    try {
        DatagramSocket socket = new DatagramSocket();
        socket.setSoTimeout(timeout);
        InetAddress address = InetAddress.getByName(host);
        byte[] buffer = new byte[NTP_PACKET_SIZE];
        DatagramPacket request = new DatagramPacket(buffer, buffer.length, address, NTP_PORT);

        buffer[0] = NTP_MODE_CLIENT | (NTP_VERSION << 3);

        writeTimeStamp(buffer, TRANSMIT_TIME_OFFSET);

        socket.send(request);

        // read the response
        DatagramPacket response = new DatagramPacket(buffer, buffer.length);
        socket.receive(response);          
        socket.close();

        mNtpTime = readTimeStamp(buffer, RECEIVE_TIME_OFFSET);            
    } catch (Exception e) {
      //  if (Config.LOGD) Log.d(TAG, "request time failed: " + e);
        return false;
    }

    return true;
}


public long getNtpTime() {
    return mNtpTime;
}


/**
 * Reads an unsigned 32 bit big endian number from the given offset in the buffer.
 */
private long read32(byte[] buffer, int offset) {
    byte b0 = buffer[offset];
    byte b1 = buffer[offset+1];
    byte b2 = buffer[offset+2];
    byte b3 = buffer[offset+3];

    // convert signed bytes to unsigned values
    int i0 = ((b0 & 0x80) == 0x80 ? (b0 & 0x7F) + 0x80 : b0);
    int i1 = ((b1 & 0x80) == 0x80 ? (b1 & 0x7F) + 0x80 : b1);
    int i2 = ((b2 & 0x80) == 0x80 ? (b2 & 0x7F) + 0x80 : b2);
    int i3 = ((b3 & 0x80) == 0x80 ? (b3 & 0x7F) + 0x80 : b3);

    return ((long)i0 << 24) + ((long)i1 << 16) + ((long)i2 << 8) + (long)i3;
}

/**
 * Reads the NTP time stamp at the given offset in the buffer and returns 
 * it as a system time (milliseconds since January 1, 1970).
 */    
private long readTimeStamp(byte[] buffer, int offset) {
    long seconds = read32(buffer, offset);
    long fraction = read32(buffer, offset + 4);
    return ((seconds - OFFSET_1900_TO_1970) * 1000) + ((fraction * 1000L) / 0x100000000L);        
}

/**
 * Writes 0 as NTP starttime stamp in the buffer. --> Then NTP returns Time OFFSET since 1900
 */    
private void writeTimeStamp(byte[] buffer, int offset) {        
    int ofs =  offset++;

    for (int i=ofs;i<(ofs+8);i++)
      buffer[i] = (byte)(0);             
}

}

다음과 같이 사용하십시오.

        long now = 0;

        NTP_UTC_Time client = new NTP_UTC_Time();

        if (client.requestTime("pool.ntp.org", 2000)) {              
          now = client.getNtpTime();
        }

DateTimestring 사용 함수로 UTC 시간 "지금"이 필요한 경우 :

private String get_UTC_Datetime_from_timestamp(long timeStamp){

    try{

        Calendar cal = Calendar.getInstance();
        TimeZone tz = cal.getTimeZone();

        int tzt = tz.getOffset(System.currentTimeMillis());

        timeStamp -= tzt;

        // DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.getDefault());
        DateFormat sdf = new SimpleDateFormat();
        Date netDate = (new Date(timeStamp));
        return sdf.format(netDate);
    }
    catch(Exception ex){
        return "";
     }
    } 

다음과 같이 사용하십시오.

String UTC_DateTime = get_UTC_Datetime_from_timestamp(now);
public static void main(String args[]){
    LocalDate date=LocalDate.now();  
    System.out.println("Current date = "+date);
}

간단하게 말합니다. 캘린더 객체는 시간대에 대한 정보를 저장하지만 cal.gettime ()을 수행하면 시간대 정보가 손실됩니다. 따라서 시간대 전환의 경우 DateFormat 클래스를 사용하도록 조언 할 것입니다 ...

이것은 내 구현입니다.

public static String GetCurrentTimeStamp()
{
    Calendar cal=Calendar.getInstance();
    long offset = cal.getTimeZone().getOffset(System.currentTimeMillis());//if you want in UTC else remove it .
    return new java.sql.Timestamp(System.currentTimeMillis()+offset).toString();    
}

날짜를 구문 분석하지 않고 GMT에서 타임 스탬프를 원한다면 다음을 사용할 수 있습니다.

final Date gmt = new Timestamp(System.currentTimeMillis()
            - Calendar.getInstance().getTimeZone()
                    .getOffset(System.currentTimeMillis()));

Joda Time을 사용하고 현재 시간을 밀리 초로 원하는 경우 로컬 오프셋없이 당신은 이것을 사용할 수 있습니다 :

long instant = DateTimeZone.UTC.getMillisKeepLocal(DateTimeZone.getDefault(), System.currentTimeMillis());
public class CurrentUtcDate 
{
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        System.out.println("UTC Time is: " + dateFormat.format(date));
    }
}

산출:

UTC Time is: 22-01-2018 13:14:35

필요에 따라 날짜 형식을 변경할 수 있습니다.

Java.Time 패키지를 사용하고 아래 코드를 포함하십시오.

ZonedDateTime now = ZonedDateTime.now( ZoneOffset.UTC );

또는

LocalDateTime now2 = LocalDateTime.now( ZoneOffset.UTC );

응용 프로그램이 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top