我需要在下面的给定代码中将 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);
}
}
输出:1998年12月31日,星期四IST 1998年12月31日00:00:00
我需要格林尼治标准时间,请帮忙!
答案 0 :(得分:0)
您必须以“ 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"));
答案 1 :(得分:0)
您使用的是可怕的日期时间类,而这些类早已被JSR 310中定义的现代 java.time 类取代了。
将输入字符串解析为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
类。堆栈溢出已经对此进行了很多次讨论,我将不介绍该部分。
答案 2 :(得分:0)
此代码:
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