mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-09 06:55:54 +01:00
(ref #519) Change datetime formats
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
package view
|
||||
import java.util.{Date, TimeZone}
|
||||
import java.util.{Locale, Date, TimeZone}
|
||||
import java.text.SimpleDateFormat
|
||||
import play.twirl.api.Html
|
||||
import util.StringUtil
|
||||
@@ -15,6 +15,49 @@ object helpers extends AvatarImageProvider with LinkConverter with RequestCache
|
||||
*/
|
||||
def datetime(date: Date): String = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)
|
||||
|
||||
val timeUnits = List(
|
||||
(1000L, "second"),
|
||||
(1000L * 60, "minute"),
|
||||
(1000L * 60 * 60, "hour"),
|
||||
(1000L * 60 * 60 * 24, "day"),
|
||||
(1000L * 60 * 60 * 24 * 30, "month"),
|
||||
(1000L * 60 * 60 * 24 * 365, "year")
|
||||
).reverse
|
||||
|
||||
/**
|
||||
* Format java.util.Date to "x {seconds/minutes/hours/days/months/years} ago"
|
||||
*/
|
||||
def datetimeAgo(date: Date): String = {
|
||||
val duration = new Date().getTime - date.getTime
|
||||
timeUnits.find(tuple => duration / tuple._1 > 0) match {
|
||||
case Some((unitValue, unitString)) =>
|
||||
val value = duration / unitValue
|
||||
s"${value} ${unitString}${if (value > 1) "s" else ""} ago"
|
||||
case None => "just now"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Format java.util.Date to "x {seconds/minutes/hours/days} ago"
|
||||
* If duration over 1 month, format to "d MMM (yyyy)"
|
||||
*
|
||||
*/
|
||||
def datetimeAgoRecentOnly(date: Date): String = {
|
||||
val duration = new Date().getTime - date.getTime
|
||||
val list = timeUnits.map(tuple => (duration / tuple._1, tuple._2)).filter(tuple => tuple._1 > 0)
|
||||
if (list.isEmpty)
|
||||
"just now"
|
||||
else {
|
||||
list.head match {
|
||||
case (_, "month") => s"on ${new SimpleDateFormat("d MMM", Locale.ENGLISH).format(date)}"
|
||||
case (_, "year") => s"on ${new SimpleDateFormat("d MMM yyyy", Locale.ENGLISH).format(date)}"
|
||||
case (value, unitString) => s"${value} ${unitString}${if (value > 1) "s" else ""} ago"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Format java.util.Date to "yyyy-MM-dd'T'hh:mm:ss'Z'".
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user