日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java代码格式化算法_一个时间格式化的工具类:TimeUtil

發布時間:2023/12/1 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java代码格式化算法_一个时间格式化的工具类:TimeUtil 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源代碼如下:

import android.content.Context;

import android.text.TextUtils;

import android.text.format.DateUtils;

import java.text.Format;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class TimeUtil {

public static final int TYPE_YEAR_MOUTH_DAY_TIME = 1;

public static final int TYPE_MOUTH_DAY_TIME = 2;

public static final int TYPE_YEAR_MOUTH_DAY = 3;

public static final int TYPE_MOUTH_DAY = 4;

public static final int TYPE_WEEK = 5;

public static final int TYPE_MONTH = 6;

public static final int TYPE_YEAR_MOUTH = 7;

public static final int TYPE_AUTO = 8;//HH:mm:ss

public static final int TYPE_AUTO_WEEK = 9;//今天||昨天||周幾

public static final int TYPE_AUTO_MOUTH = 10;//本月||5月||4月

private static final int TYPE_TIME = 21;

private static final int TYPE_TODAY = 22;

private static final int TYPE_YESTERDAY = 23;

private static String patternYear = "[/\\-.]yyyy|yyyy[/\\-.年]";

private static String patternWeek = "[Ee] ,|, [Ee]|EEEE";// week格式

/**

* 返回格式化后的時間

* @param context

* @param when

* @param type

* @return

*/

public static String format(Context context, long when, int type) {

Format dateFormat = android.text.format.DateFormat.getDateFormat(context);

String pattern = ((SimpleDateFormat) dateFormat).toLocalizedPattern();

//刪除星期

Pattern patt = Pattern.compile(patternWeek);

Matcher matt = patt.matcher(pattern);

String patternResult = matt.replaceAll("");

//刪除空格

String styleResult = patternResult.replace(" ", "");

SimpleDateFormat formatter = null;

Pattern pat = Pattern.compile(patternYear);

Matcher mat = pat.matcher(styleResult);

String time = " HH:mm:ss";

String changePattern = "";

String timeResult = "";

Date whenDate = new Date(when);

//自動轉換

if (type == TYPE_AUTO) {

Date currDate = new Date(System.currentTimeMillis());

if (DateUtils.isToday(when)) {

type = TYPE_TIME;

} else if (whenDate.getYear() != currDate.getYear()) {

type = TYPE_YEAR_MOUTH_DAY_TIME;

} else {

type = TYPE_MOUTH_DAY_TIME;

}

} else if (type == TYPE_AUTO_WEEK) {//今天||昨天||周幾

long nowTime = System.currentTimeMillis();

int passTime = (int) Math.floor((nowTime - when) / 1000);

if (DateUtils.isToday(when)) {

type = TYPE_TODAY;

} else if (!DateUtils.isToday(when) && passTime < 86400) {

type = TYPE_YESTERDAY;

} else {

type = TYPE_WEEK;

}

} else if (type == TYPE_AUTO_MOUTH) {

Date currDate = new Date(System.currentTimeMillis());

if (whenDate.getYear() != currDate.getYear()) {

Calendar cal = Calendar.getInstance();

cal.setTime(whenDate);

timeResult = String.valueOf(cal.get(Calendar.YEAR)) + " 年" + String.valueOf(whenDate.getMonth() + 1) + " 月";

} else if (whenDate.getYear() == currDate.getYear() && whenDate.getMonth() == currDate.getMonth()) {

timeResult = "本月";

} else {

timeResult = String.valueOf(whenDate.getMonth() + 1) + " 月";

}

}

switch (type) {

case TYPE_YEAR_MOUTH_DAY:

time = "";

case TYPE_YEAR_MOUTH_DAY_TIME:

if (mat.find()) {

changePattern = styleResult;

} else {

changePattern = "yyyy-MM-dd";

}

changePattern += time;

break;

case TYPE_MOUTH_DAY_TIME:

if (mat.find()) {

changePattern = mat.replaceAll("");

} else {

changePattern = "MM-dd";

}

changePattern += time;

break;

case TYPE_MOUTH_DAY:

if (mat.find()) {

changePattern = mat.replaceAll("");

} else {

changePattern = "MM-dd";

}

break;

case TYPE_YEAR_MOUTH:

if (mat.find()) {

changePattern = mat.replaceAll("");

} else {

changePattern = "yyyy-MM";

}

break;

case TYPE_TIME:

changePattern = "HH:mm:ss";

break;

case TYPE_WEEK:

timeResult = getWeekOfDate(when);

break;

case TYPE_MONTH:

changePattern = "MM";

break;

case TYPE_TODAY:

timeResult = "今天";

break;

case TYPE_YESTERDAY:

timeResult = "昨天";

break;

default:

break;

}

if (!TextUtils.isEmpty(changePattern)) {

formatter = new SimpleDateFormat(changePattern);

timeResult = formatter.format(whenDate);

}

return timeResult;

}

/**

* 返回當前時間是星期幾

* @param time

* @return

*/

public static String getWeekOfDate(long time) {

Date date = new Date(time);

String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};

Calendar cal = Calendar.getInstance();

cal.setTime(date);

int w = cal.get(Calendar.DAY_OF_WEEK) - 1;

if (w < 0)

w = 0;

return weekDays[w];

}

/**

* 微信朋友圈動態的發送時間顯示方式

* @param when

* @return

*/

public static String format(long when) {

String timeResult = null;

long nowTime = System.currentTimeMillis();

int passTime = (int) Math.floor((nowTime - when) / 1000);//發送的時間和當前時間的間隔 單位:秒

if (DateUtils.isToday(when)) {

if (passTime < 60) {

timeResult = "1分鐘前";

} else if (passTime > 60 && passTime < 3600) {

timeResult = passTime / 60 + "分鐘前";

} else if (passTime >= 3600 && passTime < 86400) {

timeResult = (int) Math.floor(passTime / (60 * 60)) + "小時前";

}

} else {

if (passTime < 86400) {

timeResult = "昨天";

} else {

timeResult = (int) Math.ceil((passTime / 86400)) + 1 + "天前";

}

}

return timeResult;

}

}

格式化結果展示

/**

*

06-01 10:38:40.477 18435-18435/com.github.mvp I/System.out: 07:52:00

06-01 10:38:40.478 18435-18435/com.github.mvp I/System.out: 本月

06-01 10:38:40.478 18435-18435/com.github.mvp I/System.out: 今天

06-01 10:38:40.478 18435-18435/com.github.mvp I/System.out: 06

06-01 10:38:40.479 18435-18435/com.github.mvp I/System.out: 06-01

06-01 10:38:40.479 18435-18435/com.github.mvp I/System.out: 06-01 07:52:00

06-01 10:38:40.480 18435-18435/com.github.mvp I/System.out: 2017-06

06-01 10:38:40.480 18435-18435/com.github.mvp I/System.out: 2017-06-01

06-01 10:38:40.480 18435-18435/com.github.mvp I/System.out: 2017-06-01 07:52:00

06-01 10:38:40.481 18435-18435/com.github.mvp I/System.out: 星期四

* @param time

*/

private void showTimeFormat(long time) {

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_AUTO));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_AUTO_MOUTH));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_AUTO_WEEK));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_MONTH));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_MOUTH_DAY));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_MOUTH_DAY_TIME));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_YEAR_MOUTH));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_YEAR_MOUTH_DAY));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_YEAR_MOUTH_DAY_TIME));

System.out.println(TimeUtil.format(this, time, TimeUtil.TYPE_WEEK));

System.out.println(TimeUtil.format(time));

}

總結

以上是生活随笔為你收集整理的Java代码格式化算法_一个时间格式化的工具类:TimeUtil的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。