Skip to content

Instantly share code, notes, and snippets.

@buraktabn
Created December 13, 2019 02:34
Show Gist options
  • Save buraktabn/0b9cd5707eacfaa36f54e18a1f4a69cc to your computer and use it in GitHub Desktop.
Save buraktabn/0b9cd5707eacfaa36f54e18a1f4a69cc to your computer and use it in GitHub Desktop.
This function allows you to parse the date for you to show in your chat time
private fun parseDate(date: Date): String {
val now = Calendar.getInstance().time
val nowDate = Calendar.getInstance()
val messageDate = Calendar.getInstance()
val yesterdayDate = Calendar.getInstance()
val lastWeekDate = Calendar.getInstance()
nowDate.time = now
messageDate.time = date
yesterdayDate.add(Calendar.DAY_OF_YEAR, -1)
lastWeekDate.time = now
lastWeekDate.add(Calendar.WEEK_OF_YEAR, -1)
val sameDay = nowDate[Calendar.DAY_OF_YEAR] == messageDate[Calendar.DAY_OF_YEAR]
&& nowDate[Calendar.YEAR] == messageDate[Calendar.YEAR]
val yesterday = yesterdayDate.get(Calendar.YEAR) == messageDate.get(Calendar.YEAR)
&& yesterdayDate.get(Calendar.DAY_OF_YEAR) == messageDate.get(Calendar.DAY_OF_YEAR)
val lastWeek = ((now.time - date.time) / (1000 * 60 * 60 * 24)) < 7
return when {
sameDay -> SimpleDateFormat("hh:mm aa").format(date)
yesterday -> "Yesterday"
lastWeek -> SimpleDateFormat("EEEE").format(date)
else -> SimpleDateFormat("MM/dd/yyyy").format(date)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment