我有以下代码将服务器返回的日期字符串转换为 since 字符串。
/**
* Change date format to "since" string
* */
public static String timeSince(String dateString) {
Date date = stringToDate(dateString);
String result = (DateUtils.getRelativeTimeSpanString(date.getTime())).toString();
return result;
}
/**
* Function to convert server date string to Date
* */
public static Date stringToDate(String s){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try {
return df.parse(s);
} catch(ParseException e){
e.printStackTrace();
}
return null;
}
但是,举个例子,如果我调用 timeSince("2016-07-04T07:21:39.575Z") 结果是“2016 年 7 月 4 日”,而不是“3 天前”或相对于现在时间的任何其他时间段。知道为什么吗?谢谢...
最佳答案
好的。事实证明,如果该持续时间为 < em>大于一周,在这种情况下它返回一个绝对(查看代码)日期...
文档中没有任何内容这么说......但这是事实。大多数 Android 解决方案的另一个缺点是消息未本地化(“3 分钟前”在法语、西类牙语或任何其他语言中均无效)。所以我可能最终会为此编写自己的库。
底线是,如果您使用英语并希望将日期显示为一周前的绝对日期,则上述代码有效。
关于java - Android:如何从服务器日期开始构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38343116/