0
我有下面的代碼時區澄清的Java/Android的
public Long getEpochTime(String dateToGetItsEpoch) throws ParseException
{
TimeZone timeZone = TimeZone.getTimeZone("UTC");
final String REQUEST_DATE_FORMAT = "dd/MM/yyyy h:m";
DateFormat format = new SimpleDateFormat(REQUEST_DATE_FORMAT);
Date localDate = format.parse(dateToGetItsEpoch);
Calendar cal = Calendar.getInstance(timeZone);
cal.setTime(localDate);
format.setTimeZone(timeZone);
final String utcTime = format.format(cal.getTime());
Date d = cal.getTime();
return d.getTime();
}
如果我改變我的設備,以任何語言環境,我總是得到UTC時間返回值。這是正確的,但是我想知道這是怎麼發生的?設備如何知道哪個時區是我給它的日期,以便相應計算?
感謝您的及時回覆。如果我使用你建議的方法,我如何在新紀元中獲得新的UTC時間?並且關於您的線路'您最初使用設備的默認時區解析字符串'..我們是這樣做的嗎?日期localDate = format.parse(dateToGetItsEpoch);這是默認情況下發生的? – tony9099
@ tony9099:我不知道你的意思是「新世界時代的新時代」。但是,是的,當您在'SimpleDateFormat'中未指定時區(或日曆)時調用'format.parse'時,它將使用默認時區。 –
我的意思是,如果我沒有在日期內使用第二種建議的方法,我該如何將'utcTime'轉換爲紀元時間。 – tony9099