Java String to Date Изменить часовой пояс - PullRequest
0 голосов
/ 05 июля 2019

Мне нужно изменить IST на GMT в приведенном ниже коде:

import java.text.SimpleDateFormat;  
import java.util.Date;  
public class StringToDateExample1 {  
    public static void main(String[] args)throws Exception {  
      String sDate1="31/12/1998";  
      Date date1=new SimpleDateFormat("dd/MM/yyyy").parse(sDate1);  
      System.out.println(sDate1+"\t"+date1);  
    }  
}  

Выходные данные: 31.12.1998 чт 31 декабря 00:00:00 IST 1998

Мне нужно время по Гринвичу, пожалуйста, помогите !!

Ответы [ 3 ]

0 голосов
/ 05 июля 2019

Вы используете ужасные классы даты и времени, которые были вытеснены несколько лет назад современными java.time классами, определенными в JSR 310.

Разбор входной строки как LocalDate.

String input = "31/12/1998" ; 
DateTimeFormatter f =  DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) ;
LocalDate ld = LocalDate.parse( input , f ) ;

Очевидно, вы хотите представить первый момент этого дня в UTC.

OffsetDateTime odt = OffsetDateTime.of( ld , LocalTime.MIN ,  ZoneOffset.UTC ) ;

Чтобы сгенерировать строку в произвольном формате, используйте класс DateTimeFormatter.Это уже много раз освещалось в Переполнении стека, я не буду описывать эту часть.

0 голосов
/ 05 июля 2019

Код для этого:

String sDate1 = "31/12/1998";
SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");
dateformat.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sDate1 + "\t" + dateformat.parse(sDate1));

Выход:

31/12/1998  Thu Dec 31 05:30:00 IST 1998
0 голосов
/ 05 июля 2019

Вы должны добавить часовой пояс в формате даты 'T':

SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(sDate1+"\t"+isoFormat.parse("2010-05-23T09:01:02"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...