我正在将毫秒转换为相应国家/地区时间格式的时间,例如巴基斯坦,美国等
例如 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
答案 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);
}