如何更改2016年5月9日15:02:40亚洲/加尔各答2016年至2016年5月9日15:02:40 IST 2016的日期格式?

时间:2016-11-19 11:37:04

标签: java simpledateformat

我将于2016年5月9日15:02:40亚洲/加尔各答2016年的数据库中获取日期,我必须将其更改为2016年5月9日15:02:40 IST 2016.这是我正在使用的格式化程序将其他日期更改为Mon May 09 15:02:40 IST 2016.

 public static Timestamp convertStringToTimestamp(String date, String format){
        Timestamp timeStamp = null;
        java.util.Date time = null;
        if(date!=null){
            final SimpleDateFormat sdf= new SimpleDateFormat(format);
            final SimpleDateFormat sdf1= new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
            try {
                time= sdf.parse(date);
                timeStamp = new Timestamp(sdf1.parse(sdf1.format(time)).getTime());
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
        return timeStamp;
    }

2 个答案:

答案 0 :(得分:0)

假设这是java.sql.Timestamp,此类对象不包含时区,只包含时间和日期。

如果要为时区输出三个字母的首字母缩写词(在您的情况下为IST),当您将SimpleDateFormat导出为字符串时,应放在z中的格式为sudo apt-get install nodejs-legacy 。但是,请注意,再次解析时会丢失。

答案 1 :(得分:0)

如果您使用的是Java 8,可以试试这个。

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

import org.junit.Test;

public class ZonedDateTimePipeTest {

    public static String formatWithResolveZoneIdToZoneNameJava8(String text) {
        // create global variable
        DateTimeFormatter in = DateTimeFormatter.ofPattern("EEE MMM dd H:mm:ss VV yyyy");
        ZonedDateTime zonedDateTime = ZonedDateTime.parse(text, in);

        // create global variable
        DateTimeFormatter out = DateTimeFormatter.ofPattern("EEE MMM dd H:mm:ss z yyyy");
        // See for meaning of formatter symbols:
        // https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
        return out.format(zonedDateTime);
    }

    @Test
    public void conversion() throws Exception {
        String in = "Mon May 09 15:02:40 Asia/Kolkata 2016";
        String out = "Mon May 09 15:02:40 IST 2016";
        assertThat(formatWithResolveZoneIdToZoneNameJava8(in), is(out));
    }

}