Java c 时间转换_Java时间工具类(把日期时间转换成xx秒前、xx分钟前、xx小时前...)...

[java]代码库package com.file.action;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class DateUtils {

private static final long ONE_MINUTE = 60;

private static final long ONE_HOUR = 3600;

private static final long ONE_DAY = 86400;

private static final long ONE_MONTH = 2592000;

private static final long ONE_YEAR = 31104000;

public static Calendar calendar = Calendar.getInstance();

/**

*

* @return yyyy-mm-dd

* 2012-12-25

*/

public static String getDate() {

return getYear() + "-" + getMonth() + "-" + getDay();

}

/**

* @param format

* @return

* yyyy年MM月dd HH:mm

* MM-dd HH:mm 2012-12-25

*

*/

public static String getDate(String format) {

SimpleDateFormat simple = new SimpleDateFormat(format);

return simple.format(calendar.getTime());

}

/**

*

* @return yyyy-MM-dd HH:mm

* 2012-12-29 23:47

*/

public static String getDateAndMinute() {

SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm");

return simple.format(calendar.getTime());

}

/**

*

* @return

* yyyy-MM-dd HH:mm:ss

* 2012-12-29 23:47:36

*/

public static String getFullDate() {

SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

return simple.format(calendar.getTime());

}

/**

* 距离今天多久

* @param date

* @return

*

*/

public static String fromToday(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

long time = date.getTime() / 1000;

long now = new Date().getTime() / 1000;

long ago = now - time;

if (ago <= ONE_HOUR)

return ago / ONE_MINUTE + "分钟前";

else if (ago <= ONE_DAY)

return ago / ONE_HOUR + "小时" + (ago % ONE_HOUR / ONE_MINUTE)

+ "分钟前";

else if (ago <= ONE_DAY * 2)

return "昨天" + calendar.get(Calendar.HOUR_OF_DAY) + "点"

+ calendar.get(Calendar.MINUTE) + "分";

else if (ago <= ONE_DAY * 3)

return "前天" + calendar.get(Calendar.HOUR_OF_DAY) + "点"

+ calendar.get(Calendar.MINUTE) + "分";

else if (ago <= ONE_MONTH) {

long day = ago / ONE_DAY;

return day + "天前" + calendar.get(Calendar.HOUR_OF_DAY) + "点"

+ calendar.get(Calendar.MINUTE) + "分";

} else if (ago <= ONE_YEAR) {

long month = ago / ONE_MONTH;

long day = ago % ONE_MONTH / ONE_DAY;

return month + "个月" + day + "天前"

+ calendar.get(Calendar.HOUR_OF_DAY) + "点"

+ calendar.get(Calendar.MINUTE) + "分";

} else {

long year = ago / ONE_YEAR;

int month = calendar.get(Calendar.MONTH) + 1;// JANUARY which is 0 so month+1

return year + "年前" + month + "月" + calendar.get(Calendar.DATE)

+ "日";

}

}

/**

* 距离截止日期还有多长时间

*

* @param date

* @return

*/

public static String fromDeadline(Date date) {

long deadline = date.getTime() / 1000;

long now = (new Date().getTime()) / 1000;

long remain = deadline - now;

if (remain <= ONE_HOUR)

return "只剩下" + remain / ONE_MINUTE + "分钟";

else if (remain <= ONE_DAY)

return "只剩下" + remain / ONE_HOUR + "小时"

+ (remain % ONE_HOUR / ONE_MINUTE) + "分钟";

else {

long day = remain / ONE_DAY;

long hour = remain % ONE_DAY / ONE_HOUR;

long minute = remain % ONE_DAY % ONE_HOUR / ONE_MINUTE;

return "只剩下" + day + "天" + hour + "小时" + minute + "分钟";

}

}

/**

* 距离今天的绝对时间

*

* @param date

* @return

*/

public static String toToday(Date date) {

long time = date.getTime() / 1000;

long now = (new Date().getTime()) / 1000;

long ago = now - time;

if (ago <= ONE_HOUR)

return ago / ONE_MINUTE + "分钟";

else if (ago <= ONE_DAY)

return ago / ONE_HOUR + "小时" + (ago % ONE_HOUR / ONE_MINUTE) + "分钟";

else if (ago <= ONE_DAY * 2)

return "昨天" + (ago - ONE_DAY) / ONE_HOUR + "点" + (ago - ONE_DAY)

% ONE_HOUR / ONE_MINUTE + "分";

else if (ago <= ONE_DAY * 3) {

long hour = ago - ONE_DAY * 2;

return "前天" + hour / ONE_HOUR + "点" + hour % ONE_HOUR / ONE_MINUTE

+ "分";

} else if (ago <= ONE_MONTH) {

long day = ago / ONE_DAY;

long hour = ago % ONE_DAY / ONE_HOUR;

long minute = ago % ONE_DAY % ONE_HOUR / ONE_MINUTE;

return day + "天前" + hour + "点" + minute + "分";

} else if (ago <= ONE_YEAR) {

long month = ago / ONE_MONTH;

long day = ago % ONE_MONTH / ONE_DAY;

long hour = ago % ONE_MONTH % ONE_DAY / ONE_HOUR;

long minute = ago % ONE_MONTH % ONE_DAY % ONE_HOUR / ONE_MINUTE;

return month + "个月" + day + "天" + hour + "点" + minute + "分前";

} else {

long year = ago / ONE_YEAR;

long month = ago % ONE_YEAR / ONE_MONTH;

long day = ago % ONE_YEAR % ONE_MONTH / ONE_DAY;

return year + "年前" + month + "月" + day + "天";

}

}

public static String getYear() {

return calendar.get(Calendar.YEAR) + "";

}

public static String getMonth() {

int month = calendar.get(Calendar.MONTH) + 1;

return month + "";

}

public static String getDay() {

return calendar.get(Calendar.DATE) + "";

}

public static String get24Hour() {

return calendar.get(Calendar.HOUR_OF_DAY) + "";

}

public static String getMinute() {

return calendar.get(Calendar.MINUTE) + "";

}

public static String getSecond() {

return calendar.get(Calendar.SECOND) + "";

}

public static void main(String[] args) throws ParseException {

String deadline = "2012-12-30 12:45:59";

Date date = new Date();

SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

date = simple.parse(deadline);

System.out.println(DateUtils.fromDeadline(date));

String before = "2012-12-12 0:0:59";

date = simple.parse(before);

System.out.println(DateUtils.fromToday(date));

System.out.println(DateUtils.getFullDate());

System.out.println(DateUtils.getDate());

}

}

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值