java中如何将日期转换为gmt

ax6ht2ek  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(344)
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'SSSX");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println("Current date and time in GMT: " + df.format("2017-01-04"));

上面是我的代码,当我尝试将日期转换为 gmt 我得到一个错误:
线程“main”java.lang.illegalargumentexception中出现异常:无法在java.text.dateformat.format(dateformat)中将给定对象格式化为日期。java:310)在java.text.format.format(format。java:157)在sample.main(sample。java:24)
请指出我做错了什么。

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'SSSX");
 df.setTimeZone(TimeZone.getTimeZone("GMT"));
 System.out.println("Current date and time in GMT: " + df.format(new Date()));

上面的代码工作正常,但我需要的东西,任何日期的工作。
当我尝试这个代码时:

try {
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'SSSX");
    df.setTimeZone(TimeZone.getTimeZone("GMT"));
    System.out.println("Current date and time in GMT: " + df.parse("2017-01-04"));

} catch(Exception e) {
    e.printStackTrace();
}

我要走了 Unparseable date: "2017-01-04" . 请告诉我怎么修

wkftcu5l

wkftcu5l1#

试试看。。

String s = "2016-11-21 13:30:0.0";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss);
        Date d = null;
        try 
        {
            d = format.parse(s);
        } catch (ParseException e) 
        {
            e.printStackTrace();
        }

        SimpleDateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd'T'SSSX");

        gmtFormat.setTimeZone(TimeZone.getTimeZone("GMT"));

        System.out.println(gmtFormat.format(d));
enyaitl3

enyaitl32#

下面的代码有助于更好地理解-您可以尝试取消注解注解行并比较结果。你对这整个街区感兴趣的是 gdf.parse(gmtFormat) ```
Date date = new Date();
DateFormat idf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
idf.setTimeZone(TimeZone.getTimeZone("IST"));
DateFormat gdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
gdf.setTimeZone(TimeZone.getTimeZone("GMT"));

//String istFormat = idf.format(date);
//System.out.println("IST: "+istFormat);

String gmtFormat = gdf.format(date);
System.out.println("GMT: "+ gmtFormat);
try {
    //System.out.println("gmt parsed from istFormat: "+gdf.parse(istFormat));
    //System.out.println("ist parsed from istFormat: "+idf.parse(istFormat));

    System.out.println("gmt parsed from gmtFormat: "+gdf.parse(gmtFormat));
    System.out.println("ist parsed from gmtFormat: "+idf.parse(gmtFormat));
} catch (ParseException e) {
    e.printStackTrace();
}
ndasle7k

ndasle7k3#

当您有一个日期对象时,您可以根据需要格式化它:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.setTimeZone(TimeZone.getTimeZone("GMT"));

//create a calendar representing your date.
Calendar cal = Calendar.getInstance();
cal.set(2017, 01, 04);

//format the date object to the pattern you want.
String DateToStr = format.format(cal.getTime());

System.out.println(DateToStr);

如果您将日期作为字符串,还可以执行以下操作:

String string = "2017-01-04";
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
format1.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = null;
try {
    date = format1.parse(string);
} catch (Exception ex) {
    ex.printStackTrace();
}
System.out.println(date);

相关问题