Android:我將共享首選項中的日期保存爲字符串。從字符串獲取日期格式
Date now = new Date(new Date().getTime());
savePreferences(key, "" + now);
我想從字符串中取回日期格式,怎麼做?
Android:我將共享首選項中的日期保存爲字符串。從字符串獲取日期格式
Date now = new Date(new Date().getTime());
savePreferences(key, "" + now);
我想從字符串中取回日期格式,怎麼做?
我假設你正在使用java.util.Date
它被廢棄了。您應該使用GregorianCalendar,然後使用getTimeInMillis()
將其保存爲長。
這使得使用起來更容易。 :-)
實際上java.util.Date並沒有被完全棄用,只有它的幾個方法。儘管如此,你應該避免java.util.Date/Calendar類。而是使用Joda-Time或Java 8的新java.time。*類。 – 2013-12-27 07:06:56
試試這個功能。
public static Date convertStringToDate(String startDate) throws ParseException
{
String myFormatString = // Your stored date format like "dd-mm-yyyy"
SimpleDateFormat df = new SimpleDateFormat(myFormatString);
Date startingDate = df.parse(startDate);
return startingDate;
}
將毫秒轉換爲日期。
long yourmilliseconds = 1119193190;
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
Date resultdate = new Date(yourmilliseconds);
System.out.println(sdf.format(resultdate));
getTime()以毫秒值的形式返回Date。我怎樣才能從字符串中獲得毫秒值? – user1471575 2012-08-16 08:17:22
你可以使用Long.parseLong(string)來解析你的字符串毫秒。 – 2012-08-16 08:19:34
您在Date實例上隱式調用toString
方法。不幸的是,該類使用糟糕的格式來渲染字符串。一個主要問題是使用既不標準也不唯一的3字母時區代碼(有重複的例如EST和IST)。應該避免輸出。
事實上,應該避免所有java.util.Date/Calendar類。相反,請使用Joda-Time或Java 8的新java.time.* classes。
此外,其他答案建議寫入自紀元以來的毫秒數。你可以這樣做,但它是不明確的。什麼時代?有不止一個,儘管Unix紀元很常見,並且確實被java.util.Date和Joda-Time使用。這個數字是什麼時間單位?舊的Unix風格存儲秒數,而java.util.Date和Joda-Time使用毫秒,新的Java 8 java.time *類使用納秒。
明確的方法是存儲ISO 8601格式的字符串,最好是UTC(無時區偏移量)。然後在運行時的用戶界面中,根據需要轉換爲其他格式和其他時區。
String string = new DateTime(DateTimeZone.UTC).toString();
要獲得...
string: 2013-12-27T07:15:00.395Z
你的意思,你要恢復的,你有字符串的日期格式? – Elchin 2012-08-16 08:38:20