`
pure
  • 浏览: 354822 次
社区版块
存档分类
最新评论

java 版本的某个时间前(发表于XX前)功能

阅读更多
有很多版本的,先上过ruby版本。

def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
    from_time = from_time.to_time if from_time.respond_to?(:to_time)
    to_time = to_time.to_time if to_time.respond_to?(:to_time)
    distance_in_minutes = (((to_time - from_time).abs)/60).round
    case distance_in_minutes
    when 0..1 then (distance_in_minutes==0) ? '几秒钟前'[] : '1 分钟前'[]
    when 2..59 then "{minutes} 分钟前"[:minutes_ago, distance_in_minutes]
    when 60..90 then "1 小时前"[]
    when 90..1440 then "{hours} 小时前"[:hours_ago, (distance_in_minutes.to_f / 60.0).round]
    when 1440..2160 then '1 天前'[] # 1 day to 1.5 days
    when 2160..2880 then "{days} 天前"[:days_ago, (distance_in_minutes.to_f / 1440.0).round] # 1.5 days to 2 days
    else from_time.strftime("%Y-%m-%d"[:datetime_format]) { |x| x.downcase }
    end
  end


下面是java版本

public static String distanceOfTimeInWords(long fromTime, long toTime, String format) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), format, 7);
	}

	public static String distanceOfTimeInWords(long fromTime, long toTime, String format, int days) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), format, days);
	}

	public static String distanceOfTimeInWords(long fromTime, long toTime, int days) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), "MM-dd HH:mm", days);
	}

	public static String distanceOfTimeInWords(long fromTime, long toTime) {
		return distanceOfTimeInWords(new Date(fromTime), new Date(toTime), "MM-dd HH:mm", 7);
	}

	public static String distanceOfTimeInWords(Date fromTime, Date toTime, int days) {
		return distanceOfTimeInWords(fromTime, toTime, "MM-dd HH:mm", days);
	}

	public static String distanceOfTimeInWords(Date fromTime, Date toTime, String format) {
		return distanceOfTimeInWords(fromTime, toTime, format, 7);
	}

	public static String distanceOfTimeInWords(Date fromTime, Date toTime) {
		return distanceOfTimeInWords(fromTime, toTime, "MM-dd HH:mm", 7);
	}

	/**
	 * 截止时间时间到起始时间间隔的时间描述
	 * @param fromTime 起始时间
	 * @param toTime 截止时间
	 * @param format 格式化
	 * @param days 超过此天数,将按format格式化显示实际时间
	 * @return
	 */
	public static String distanceOfTimeInWords(Date fromTime, Date toTime, String format, int days) {
		long distanceInMinutes = (toTime.getTime() - fromTime.getTime()) / 60000;
		String message = "";
		if (distanceInMinutes == 0) {
			message = "几秒钟前";
		} else if (distanceInMinutes >= 1 && distanceInMinutes < 60) {
			message = distanceInMinutes + "分钟前";
		} else if (distanceInMinutes >= 60 && distanceInMinutes < 1400) {
			message = (distanceInMinutes / 60) + "小时前";
		} else if (distanceInMinutes >= 1440 && distanceInMinutes <= (1440 * days)) {
			message = (distanceInMinutes / 1440) + "天前";
		} else {
			message = new SimpleDateFormat(format).format(fromTime);
		}
		return message;
	}
分享到:
评论

相关推荐

    java读取某个文件夹下的所有文件

    java读取某个文件夹下的所有文件 很不错可以看看 不要分

    java swing 时间日期选择控件

    Java Swing 是Java GUI(图形用户界面)库的...总的来说,Java Swing 的日期时间选择控件简化了日期和时间输入,提高了数据准确性,并且提供了丰富的定制选项,使得开发者能够根据应用需求构建各种复杂的日期选择功能。

    20个开发人员非常有用的Java功能代码(推荐)

    20个开发人员非常有用的Java功能代码

    java jdk 1.6 Linux版本

    java jdk 1.6 Linux版本

    Java实现邮箱激活功能

    用Java实现邮箱激活账号的功能,可以参考我的博客 博客地址:http://blog.csdn.net/jolingogo/article/details/8591197

    大鱼吃小鱼JAVA版本源代码

    "大鱼吃小鱼"是一款经典的休闲游戏,其JAVA版本的源代码为我们提供了一个学习和研究JAVA编程在游戏开发中的应用的机会。以下是对这个项目的一些关键知识点的详细解析: 1. **JAVA编程语言**:本项目是用JAVA语言...

    网盘源码-实现部分功能(JAVA)

    在本项目中,"网盘源码-实现部分功能(JAVA)" 是一个基于JAVA语言编写的网络硬盘(或云存储)应用的源代码。开发者已经实现了该系统的一部分核心功能,但仍有其他功能需要后续开发。这表明这个源码提供了一个基础架构...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java中遍历某个目录下的所有文件及文件夹中的文件

    本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一个简单的递归函数来演示如何遍历目录、列出所有文件的路径,并探讨一些高级用法。 #### 一、基础知识介绍 1. **`java.io.File`...

    h264 rtp打包 java版本

    标题 "h264 rtp打包 java版本" 描述了一个使用Java编程语言将从文件读取的H264视频流进行RTP打包并发送的过程。在这个过程中,我们需要理解几个关键概念和技术: 1. **H264**:H264(也称为AVC,Advanced Video ...

    java JDK1.8版本下载

    5. **Date和Time API的改进**:JDK1.8重构了日期和时间API,提供了`java.time`包,取代了旧的`java.util.Date`和`java.util.Calendar`。 6. **新的 Nashorn JavaScript引擎**:允许在Java应用中直接执行JavaScript...

    java实现聊天室功能(全部代码,有界面)

    Java 实现聊天室功能 Java 实现聊天室功能是通过使用 Java 语言和 Swing 库来创建一个多人聊天室系统。该系统支持群聊、公聊、私聊等功能,並支持刷新好友列表。 title: Java 实现聊天室功能(全部代码,有界面) ...

    java操作文件,得到文件名,大小,时间,及修改时间

    java操作文件,得到文件名,大小,时间,及修改时间java操作文件,得到文件名,大小,时间,及修改时间java操作文件,得到文件名,大小,时间,及修改时间

    jsp,java实现谷歌地图,查询地图功能

    本项目专注于使用JSP和Java来集成并实现谷歌地图的查询功能。下面将详细阐述这一技术实现的关键知识点。 1. **JSP基础**: - JSP生命周期:包括翻译、初始化、服务和销毁四个阶段,开发者主要在服务阶段编写业务...

    java源码包---java 源码 大量 实例

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    could not create the java virtual machine 解决办法

    - 需要注意的是,从Java 8开始,永久代被元空间(Metaspace)所替代,因此如果使用的是Java 8及以上版本,应该使用 `-XX:MetaspaceSize` 和 `-XX:MaxMetaspaceSize` 来代替 `-XX:PermSize` 和 `-XX:MaxPermSize`。...

    Java API文档 中文网页版

    这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,提高了开发效率。 首先,API全称为Application Programming Interface,它是软件系统中提供给开发者使用的预先定义...

    java版本websocket实例下载

    下面将详细介绍这个`java版本websocket实例`中的关键知识点。 1. **WebSocket API简介** WebSocket API允许双向通信,即服务器和客户端都可以主动发送数据。这与HTTP协议不同,HTTP是请求-响应模型,服务器只能在...

    java实现仿百度文库预览文档功能

    在他人基础上实现java实现仿百度文库预览文档功能, Txt/Word/Excel/PPT =&gt; PDF(OpenOffice+JodConverter) =&gt; SWF(pdf2swf)=&gt;FlexPaper浏览。 包含了源代码,文档,部分较小文件的安装文件,部分较大文件的下载...

    java集成webkit浏览器

    在Java中集成WebKit,开发者可以创建具有现代Web浏览功能的应用程序,比如内嵌式浏览器控件。 SWT(Standard Widget Toolkit)是Eclipse基金会开发的一个Java图形用户界面(GUI)工具包,它提供了与操作系统紧密集成...

Global site tag (gtag.js) - Google Analytics