Android时间转换

时间:2018-10-09 09:00:17

标签: java android timezone simpledateformat datetime-conversion

我已经在下面完成了将时间从UTC更改为另一个时区的代码,但是代码仅显示了UTC时间。在格式化为源时间格式后,它还显示了系统时区。

private String setTimezone(String time){
sourceformatter = new SimpleDateFormat("hh:mm a, E dd MMM yyyy");
dateFormatter = new SimpleDateFormat("hh:mm a");

sourceformatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    Log.e("reicievedformat",time);
Date value = null;
try {
    value = sourceformatter.parse(time);
} catch (ParseException e) {
    e.printStackTrace();
}
Log.d("afterfirstformat",dateFormatter.format(value));
dateFormatter.setTimeZone(TimeZone.getTimeZone("IST"));
time =dateFormatter.format(value);
    Log.d("Finaltime",time);
return time;
}
  

输出:-记录值

     
      
  • E / reicievedformat:2018年10月8日星期一12:36 PM

  •   
  • D / afterfirstformat:06:21 PM

  •   
  • D /最后时间:下午12:36

  •   

如您所见,我要在2018年10月8日星期一下午12:36(“ UTC”)转换为IST,但是最后一次12:36 PM似乎没有已被转换。

2 个答案:

答案 0 :(得分:0)

java中的IST代表“以色列标准时间”。 将此用于“印度标准时间”

dateFormatter.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));

Java中的日期和时间API让您头疼。 我在Daniel Lew之前使用了这个库。 https://github.com/dlew/joda-time-android

答案 1 :(得分:0)

尝试一下

public static String getDateOut(String ourDate) {
        try
        {
            //be sure that passing date has same format as formatter
            SimpleDateFormat formatter = new SimpleDateFormat("hh:mm a, E dd MMM yyyy");
            formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
            Date value = formatter.parse(ourDate);

            SimpleDateFormat dateFormatter = new SimpleDateFormat("hh:mm a"); //this format changeable
            dateFormatter.setTimeZone(TimeZone.getTimeZone("IST"));
            ourDate = dateFormatter.format(value);

        }
        catch (Exception e)
        {
            ourDate = "00-00-0000 00:00";
        }
        return ourDate;
    }