Android记录19-朋友圈动态发布时间计算(2),程序人生

打印 上一主题 下一主题

主题 982|帖子 982|积分 2946

Calendar还可以做很多一些运算,笔者在开辟日历控件的时候,就做了很多关于日期的运算:
通过Calendar的add方法来对指定字段进行运算,举比方下:
// 获取去年的年份
public static int getLastYear() {
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, -1);
return c.get(Calendar.YEAR);
}
// 获取下一年年份
public static int getNextYear() {
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, 1);
return c.get(Calendar.YEAR);
}
// 获取上一个月的月份
public static int getLastMonth() {
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);
return c.get(Calendar.MONTH) + 1;
}
// 获取下一个月的月份
public static int getNextMonth() {
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 1);
return c.get(Calendar.MONTH) + 1;
}
关于Calendar另有很多字段,希望读者查看API自己去尝试。
Date与Calendar之间的转换
我们可以通过调用Calendar的setTime方法来设置时间所对应的日历对象
calendar.setTime(new Date())
Date与日期字符串的互相转换
在现实开辟中,我们经常需要对服务端返回的日期数据进行格式化,这里就需要用到SimleDateFormat,我们可以指定日期格式:
private static SimpleDateFormat DATE_FORMAT_TILL_SECOND = new SimpleDateFormat(
“yyyy-MM-dd HH:mm:ss”);
我们得到一个日期字符串,可以将其转换为Date对象:
/**


  • 日期字符串转换为Date
  • @param dateStr
  • @param format
  • @return
*/
public static Date strToDate(String dateStr, String format) {
Date date = null;
if (!TextUtils.isEmpty(dateStr)) {
DateFormat df = new SimpleDateFormat(format);
try {
date = df.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
}
return date;
}
也可以将我们获取的Date对象转换为指定格式的字符串:
/**


  • 日期转换为字符串
  • @param timeStr
  • @param format
  • @return
*/
public static String dateToString(String timeStr, String format) {
// 判断是否是本年
Date date = DateHelper.strToDate(timeStr, format);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// 如果是本年的话,才去“xx月xx日”日期格式
if (calendar.get(Calendar.YEAR) == getYear()) {
return DATE_FORMAT_TILL_DAY_CURRENT_YEAR.format(date);
}
return DATE_FORMAT_TILL_DAY_CH.format(date);
}
最后要说的就是,开辟中我们需要计算一条动态的发布时间,一般我们得到的是一条日期字符串,我们需要计算当前时间和动态的发布时间,计算它们的差值来判断发布在什么时候,上代码:
/**


  • 日期逻辑
  • @param dateStr 日期字符串
  • @return
*/
public static String timeLogic(String dateStr) {
Calendar calendar = Calendar.getInstance();
calendar.get(Calendar.DAY_OF_MONTH);
long now = calendar.getTimeInMillis();
Date date = strToDate(dateStr, DATE_FORMAT);
calendar.setTime(date);
long past = calendar.getTimeInMillis();
// 相差的秒数
long time = (now - past) / 1000;
StringBuffer sb = new StringBuffer();
if (time > 0 && time < 60) { // 1小时内
return sb.append(time + “秒前”).toString();
} else if (time > 60 && time < 3600) {
return sb.append(time / 60+“分钟前”).toString();
} else if (time >= 3600 && time < 3600 * 24) {
return sb.append(time / 3600 +“小时前”).toString();
}else if (time >= 3600 * 24 && time < 3600 * 48) {
return sb.append(“昨天”).toString();
}else if (time >= 3600 * 48 && time < 3600 * 72) {
return sb.append(“前天”).toString();
}else if (time >= 3600 * 72) {
return dateToString(dateStr, DATE_FORMAT);
自我先容一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到如今。
深知大多数初中级Android工程师,想要提升技能,往往是自己探索发展大概是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易遇到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开辟全套学习资料》,初志也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻各人的负担。





既有得当小白学习的零底子资料,也有得当3年以上履历的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开辟知识点,真正体系化!
由于文件比较大,这里只是将部门目录截图出来,每个节点内里都包罗大厂面经、学习条记、源码课本、实战项目、解说视频,而且会持续更新!
如果你以为这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后

感觉如今好多人都在说什么安卓快凉了,工作越来越难找了。又是说什么程序员中年危机啥的,为啥我这年近30的老农根本没有这种感觉,反倒以为那些贩卖焦虑的都是瞎j8扯谈。固然,职业危机意识确实是要有的,但根本没到那种草木皆兵的地步好吗?
Android凉了都是弱者的借口和说辞。固然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的期间了。这只能阐明 Android 中级以下的岗位饱和了,如今高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不肯定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
所以,最后这里放上我耗时两个月,将自己8年Android开辟的知识条记整理成的Android开辟者必知必会系统学习资料条记,上述知识点在条记中都有详细的解读,内里还包罗了腾讯、字节跳动、阿里、百度2019-2021面试真题分析,而且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。

以上全套学习条记面试宝典,吃透一半保你可以吊打面试官,只有自己真正强盛了,有核心竞争力,你才有拒绝offer的权利,所以,奋斗吧!骚年们!千里之行,始于足下。种下一颗树最好的时间是十年前,其次,就是如今。
最后,赠与各人一句诗,共勉!
   不驰于空想,不骛于虚声。不忘初心,方得始终。
  《互联网大厂面试真题分析、进阶开辟核心学习条记、全套解说视频、实战项目源码课本》点击传送门即可获取!
每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。
[外链图片转存中…(img-TlhI2PBt-1712441379345)]
以上全套学习条记面试宝典,吃透一半保你可以吊打面试官,只有自己真正强盛了,有核心竞争力,你才有拒绝offer的权利,所以,奋斗吧!骚年们!千里之行,始于足下。种下一颗树最好的时间是十年前,其次,就是如今。
最后,赠与各人一句诗,共勉!
   不驰于空想,不骛于虚声。不忘初心,方得始终。
  《互联网大厂面试真题分析、进阶开辟核心学习条记、全套解说视频、实战项目源码课本》点击传送门即可获取!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表