我尝试将当地时区的转换日期转换为GMT,我做了一些这样的事情
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String gmtStrDate = sdf.format(Calendar.getInstance().getTime());
System.out.println("GMT 1"+gmtStrDate);
Date gmtDate = sdf.parse(gmtStrDate);
System.out.println("GMT 2"+gmtDate);
Run Code Online (Sandbox Code Playgroud)
我在GMT tz获得GMT 1 o/p但是GMT 2 o/p再次变为当地时区......任何电话都可以告诉我为什么?
要获得格林尼治标准时间GMT 2 o/p,我确实喜欢这样:
日历日历= Calendar.getInstance(TimeZone.getTimeZone("GMT")); calendar.setTime(GMTDATE);
System.out.println("GMT 3 = "+calendar.getTime());
Run Code Online (Sandbox Code Playgroud)
但是GMT 3o/p仍然在当地tz.请对此提出建议.
Sat*_*tya 16
import java.util.*;
import java.text.*;
public class CurrentTimeToGMT{
public static void main(String args[]){
Date date = new Date();
DateFormat gmtFormat = new SimpleDateFormat();
TimeZone gmtTime = TimeZone.getTimeZone("GMT");
gmtFormat.setTimeZone(gmtTime);
System.out.println("Current Time: "+date);
System.out.println("GMT Time: " + gmtFormat.format(date));
}
}
Run Code Online (Sandbox Code Playgroud)
产量
Current Time: Wed Mar 10 11:21:18 IST 2010 GMT Time: 3/10/10 5:51 AM
在“解析”之后,您必须在打印之前再次格式化它,例如:
System.out.println("GMT 2"+sdf.format(gmtDate));
Run Code Online (Sandbox Code Playgroud)
编辑:
原因是您gmtStrDate没有存储任何时区信息