-
将日期格式化成友好的字符串:几分钟前、几小时前、几天前、几月前、几年前、刚刚
-
@param date
- @return
*/
public static String formatFriendly(Date date) {
if (date == null) {
return null;
}
long diff = new Date().getTime() - date.getTime();
long r = 0;
if (diff > year) {
r = (diff / year);
return r + "年前";
}
if (diff > month) {
r = (diff / month);
return r + "个月前";
}
if (diff > day) {
r = (diff / day);
return r + "天前";
}
if (diff > hour) {
r = (diff / hour);
return r + "个小时前";
}
if (diff > minute) {
r = (diff / minute);
return r + "分钟前";
}
return "刚刚";
}
/**
-
将日期以yyyy-MM-dd HH:mm:ss格式化
-
@param dateL
-
日期
- @return
*/
public static String formatDateTime(long dateL) {
SimpleDateFormat sdf = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
Date date = new Date(dateL);
return sdf.format(date);
}
/**
-
将日期以yyyy-MM-dd HH:mm:ss格式化
-
@param dateL
-
日期
- @return
*/
public static String formatDateTime(long dateL, String formater) {
SimpleDateFormat sdf = new SimpleDateFormat(formater);
return sdf.format(new Date(dateL));
}
/**
-
将日期以yyyy-MM-dd HH:mm:ss格式化
-
@param dateL
-
日期
- @return
*/
public static String formatDateTime(Date date, String formater) {
SimpleDateFormat sdf = new SimpleDateFormat(formater);
return sdf.format(date);
}
/**
-
将日期字符串转成日期
-
@param strDate
-
字符串日期
- @return java.util.date日期类型
*/
public static Date parseDate(String strDate) {
DateFormat dateFormat = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
Date returnDate = null;
try {
returnDate = dateFormat.parse(strDate);
} catch (ParseException e) {
Log.v(TAG, "parseDate failed !");
}
return returnDate;
}
/**
-
获取系统当前日期
- @return
*/
public static Date gainCurrentDate() {
return new Date();
}
/**
-
验证日期是否比当前日期早
-
@param target1
-
比较时间1
-
@param target2
-
比较时间2
- @return true 则代表target1比target2晚或等于target2,否则比target2早
*/
public static boolean compareDate(Date target1, Date target2) {
boolean flag = false;
try {
String target1DateTime = ToolDateTime.formatDateTime(target1,
DF_YYYY_MM_DD_HH_MM_SS);
String target2DateTime = ToolDateTime.formatDateTime(target2,
DF_YYYY_MM_DD_HH_MM_SS);
if (target1DateTime.compareTo(target2DateTime) <= 0) {
flag = true;
}
} catch (Exception e1) {
System.out.println("比较失败,原因:" + e1.getMessage());
}
return flag;
}
/**
-
对日期进行增加操作
-
@param target
-
需要进行运算的日期
-
@param hour
-
小时
- @return
*/
public static Date addDateTime(Date target, double hour) {
if (null == target || hour < 0) {
return target;
}
return new Date(target.getTime() + (long) (hour 60 60 * 1000));
}
/**
-
对日期进行相减操作
-
@param target
-
需要进行运算的日期
-
@param hour
-
小时
- @return
*/
public static Date subDateTime(Date target, double hour) {
if (null == target || hour < 0) {
return target;
}
return new Date(target.getTime() - (long) (hour 60 60 * 1000));
}
}
MainActivity
package com.yqy.yqy_date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.app.Activity;
import android
.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv_week, tv_month;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_week = (TextView) findViewById(R.id.tv_week);
tv_month = (TextView) findViewById(R.id.tv_month);
最后
我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了5、6年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。
其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。
不断奔跑,你就知道学习的意义所在!