Java time in GMT

I have a Grails application with the following code:

Date now = Calendar.getInstance().getTime() //Also tried new Date()
println "now: " + now

When I do this, I get now: Thu Aug 18 12:47:09 CDT 2011. I need a date in GMT, not local time, because I need to save GMT time in a database. I can use the simpleDateFormat object to print the time in GMT, but I need to save it as GMT.

Question: How to convert a Date object to a Date object using GMT?

+5
source share
8 answers

This emphasizes why Java sucks at the time. The previous messages are all closed, but we have to be very careful to get the current time in GMT and get the current time in CDT and call it GMT.

TimeZone reference = TimeZone.getTimeZone("GMT");
Calendar myCal = Calendar.getInstance(reference);

GMT, GMT.

Date, , :

TimeZone.setDefault(reference);

, JVM. get Time .

myCal.getTime();
+5

, GMT, GMT (@jpredham . ! , )

//this option uses TimeZone
TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT");
TimeZone.setDefault(gmtTimeZone);
Calendar calendar = Calender.getInstance(gmtTimeZone);

Date myDate = calendar.getTime();
+2

:

println Calendar.getInstance(TimeZone.getTimeZone('GMT')).format('HH:mm:ss')

, . Java/ Groovy , . , . , :

Date now = Calendar.getInstance(TimeZone.getTimeZone('GMT')).time
def formatter = new java.text.SimpleDateFormat('HH:mm:ss')
formatter.timeZone = TimeZone.getTimeZone('GMT')
println formatter.format(now)
+1

Calendar UTC ( GMT). getTimeInMillis() UTC , , .

0

GregorianCalendar # setTimeZone (TimeZone timeZone).

0

System.currentTimeMillis() , Calendar Date, . , SimpleDateFormat, , .

0

. Java (java.util.Date, Joda-Time, java.time Java 8) 1970 UTC, . , - UTC/GMT.

, , Date Date GMT (UTC), .

(Joda-Time java.time) . , java.util.Date , JVM toString.

Joda-Time .

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

toString ISO 8601 Zulu (UTC).

StackOverflow "Joda" "formatter", .

0

TL;DR

Instant.now()    // Capture current moment in UTC.
    .toString()  // Generate a String object in standard ISO 8601 format, YYYY-MM-DDTHH:MM:SS.SSSSSSSSSZ.

2018-02-16T23: 28: 01.101324Z

java.time

java.time. .

Instant UTC ( (9) ).

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

ISO 8601, toString.

String output = instant.toString() ;

, Instant, , OffsetDateTime ZoneOffset.UTC.

OffsetDateTime odt = OffsetDateTime.now( ZoneOffset.UTC ) ;  // Capture the current moment in UTC.

, DateTimeFormatter.


java.time

java.time Java 8 . legacy -, java.util.Date, Calendar SimpleDateFormat.

Joda-Time, , java.time.

, . Oracle. Qaru . JSR 310.

JDBC-, JDBC 4.2 java.time- . java.sql. * Classes.

java.time?

ThreeTen-Extra java.time . java.time. , Interval, YearWeek, YearQuarter .

0

All Articles