从长远价值中获取时间

时间:2019-02-05 04:48:16

标签: java android time

我正在将毫秒转换为相应国家/地区时间格式的时间,例如巴基斯坦,美国等

例如 timeinmilliseconds = 1549362600000 因此,我从中得到这些毫秒的时间格式分别是15:30或3:30(以12小时制) 当我想将这些毫秒转换回那个时间 我10:30(五个小时后)

public String getTimeFromLong(long timeInMilliseconds){
String mytime="";
long minute = (timeInMilliseconds / (1000 * 60)) % 60;
long hour = (timeInMilliseconds / (1000 * 60 * 60)) % 24;
mytime = String.format("%02d:%02d", hour, minute);
return mytime;
}

如果我选择时间4:00 我将其转换为毫秒(此部分可以) 想要从毫秒返回的时间,但要返回五个小时 例如,如果我选择时间9:30 将其转换为毫秒然后转换为时间 我4:30

4 个答案:

答案 0 :(得分:2)

您需要使用当地时区来获取您所在地区的时间,默认设置为格林威治标准时间(GMT)。对于巴基斯坦,请像这样使用Asia/Karachi

SimpleDateFormat simpleDateFormat= new SimpleDateFormat("hh:mm");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Karachi"));

答案 1 :(得分:0)

使用此方法将毫秒转换为您的本地时间

public String getTime(long time){
    Calendar calendar = new GregorianCalendar();
    calendar.setTimeInMillis(time);

    SimpleDateFormat format = new SimpleDateFormat("hh:mm a");
    Date date = new Date(time);
    String kTime = format.format(date);     
    return kTime;
}

答案 2 :(得分:0)

使用Java 8,我们可以执行以下操作。

LocalDateTime dateTime =
LocalDateTime.ofInstant(Instant.ofEpochMilli(longValue), ZoneId.systemDefault());

获取日期和时间

答案 3 :(得分:0)

  

使用以下代码从 long 值中获取时间:

public String getTimeFromLong(long timeInMilliseconds){
 // Creating date format
 DateFormat simple = new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS Z");
 Date result = new Date(timeInMilliseconds);
  return simple.format(result);
}