需要在java中将我的服务器时间戳字符串转换为'yyyy-MM-dd'格式的另一个时区



我有一个输入字符串,如下所示:

billDate="2016-03-16T10:48:59+05:30"(请参阅中间的T)。

现在我想将其转换为另一个时间戳(美国/New_York)。

我的最终结果应该是 2016 年 3 月 16 日或 2016 年 3 月 15 日,具体取决于小时值。

我看到了很多例子,但没有提示如何将上面的长日期时间字符串转换为美国/New_York的另一个字符串。有人可以帮助我吗?

我尝试了下面的代码,但它总是给出任何小时值的 16 行军。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Test {
    public static void main(String[] args) {
        String output = formatDate("2016-03-1611T:27:58+05:30");
        System.out.println(output);
    }
    public static String formatDate(String inputDate) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                sdf.setTimeZone(TimeZone.getTimeZone("America/New_York"));
                Date parsedDate = sdf.parse(inputDate);
                return sdf.format(parsedDate);
            }
            catch (ParseException e) {
            // handle exception
            }
        return null;
    }
} 
After trying I finally got the code to solve the issue:
The below code works fine:
import java.util.Date;
import java.util.TimeZone;
import java.text.SimpleDateFormat;
public class Test {
    public static final SimpleDateFormat fDateTime = new SimpleDateFormat(
            "yyyy-MM-dd'T'HH:mm:ss");
    public static void main(String[] args) {
        String output = getFormattedDate("2016-03-1611T23:27:58+05:30");
        System.out.println(output);
    }
    public static String getFormattedDate(String inputDate) {
        try {
            Date dateAfterParsing = fDateTime.parse(inputDate);
            fDateTime.setTimeZone(TimeZone.getTimeZone("timeZone"));
            return fDateTime.format(dateAfterParsing);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

相关内容

  • 没有找到相关文章

最新更新