java 格式化星期几_[Java]对时间进行格式化:昨天、今天、明天、星期几

最近在android项目中有个对时间格式化成:类似今天、昨天、星期几,以下是整理并修改的代码,分享给有需要的人。

import java.text.DateFormat;

import java.util.Calendar;

import java.util.GregorianCalendar;

import java.util.TimeZone;

public class TimeTest {

private static GregorianCalendar calendar = new GregorianCalendar();

public TimeTest() {

}

// 提供“yyyy-mm-dd”形式的字符串到毫秒的转换

public static long getMillis(String dateString) {

String[] date = dateString.split("-");

return getMillis(date[0], date[1], date[2]);

}

// 根据输入的年、月、日,转换成毫秒表示的时间

public static long getMillis(int year, int month, int day) {

GregorianCalendar calendar = new GregorianCalendar(year, month, day);

return calendar.getTimeInMillis();

}

// 根据输入的年、月、日,转换成毫秒表示的时间

public static long getMillis(String yearString, String monthString,

String dayString) {

int year = Integer.parseInt(yearString);

int month = Integer.parseInt(monthString)-1;

int day = Integer.parseInt(dayString);

return getMillis(year, month, day);

}

// 获得当前时间的毫秒表示

public static long getNow() {

GregorianCalendar now = new GregorianCalendar();

return now.getTimeInMillis();

}

// 根据输入的毫秒数,获得日期字符串

public static String getDate(long millis) {

calendar.setTimeInMillis(millis);

return DateFormat.getDateInstance().format(calendar.getTime());

}

// 根据输入的毫秒数,获得年份

public static int getYear(long millis) {

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.YEAR);

}

// 根据输入的毫秒数,获得月份

public static int getMonth(long millis) {

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.MONTH);

}

// 根据输入的毫秒数,获得日期

public static int getDay(long millis) {

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.DATE);

}

// 根据输入的毫秒数,获得小时

public static int getHour(long millis) {

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.HOUR_OF_DAY);

}

// 根据输入的毫秒数,获得分钟

public static int getMinute(long millis) {

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.MINUTE);

}

// 根据输入的毫秒数,获得秒

public static int getSecond(long millis) {

calendar.setTimeInMillis(millis);

return calendar.get(Calendar.SECOND);

}

//获取指定毫秒数的对应星期

public static String getWeek(long millis) {

calendar.setTimeInMillis(millis);

String week = "";

int cweek = calendar.get(Calendar.DAY_OF_WEEK);

switch (cweek) {

case 1:

week = "日";

break;

case 2:

week = "一";

break;

case 3:

week = "二";

break;

case 4:

week = "三";

break;

case 5:

week = "四";

break;

case 6:

week = "五";

break;

case 7:

week = "六";

break;

}

return week;

}

// 获得今天日期

public static String getTodayData() {

return getDate(getNow());

}

// 获得明天日期

public static String getTomoData() {

// 86400000为一天的毫秒数

return getDate(getNow() + 86400000);

}

// 获得后天日期

public static String getTheDayData() {

return getDate(getNow() + 86400000 + 86400000);

}

// 获得昨天日期

public static String getYesData() {

return getDate(getNow() - 86400000L);

}

// 获得前天日期

public static String getBeforeYesData() {

return getDate(getNow() - 86400000L - 86400000L);

}

/**

* 获取今天时间具体内容

* @return

*/

public static String StringData() {

final Calendar c = Calendar.getInstance();

c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));

String mYear = String.valueOf(c.get(Calendar.YEAR)); // 获取当前年份

String mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 获取当前月份

String mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前月份的日期号码

String mWay = String.valueOf(c.get(Calendar.DAY_OF_WEEK));

if ("1".equals(mWay)) {

mWay = "天";

} else if ("2".equals(mWay)) {

mWay = "一";

} else if ("3".equals(mWay)) {

mWay = "二";

} else if ("4".equals(mWay)) {

mWay = "三";

} else if ("5".equals(mWay)) {

mWay = "四";

} else if ("6".equals(mWay)) {

mWay = "五";

} else if ("7".equals(mWay)) {

mWay = "六";

}

return mYear + "年" + mMonth + "月" + mDay + "日" + " 星期" + mWay;

}

/**

* 获取类似今天、昨天的简单名称

* @param date 格式为 20xx-xx-xx

* @return

*/

public static String getCustomStr(String date){

if(getMillis(date)==getMillis(getBeforeYesData())){

return "前天";

}else if(getMillis(date)==getMillis(getYesData())){

return "昨天";

}else if(getMillis(date)==getMillis(getTodayData())){

return "今天";

}else if(getMillis(date)==getMillis(getTomoData())){

return "明天";

}else if(getMillis(date)==getMillis(getTheDayData())){

return "后天";

}else{

return "星期"+getWeek((getMillis(date)));

}

}

public static void main(String[] args) {

System.out.println("前天:" + getBeforeYesData());

System.out.println("昨天:" + getYesData());

System.out.println("今天:" + getTodayData());

System.out.println("明天:" + getTomoData());

System.out.println("后天:" + getTheDayData());

System.out.println(StringData());

System.out.println("星期" + getWeek((getMillis("2015-1-14"))));

System.out.println(getCustomStr("2015-01-16"));

}

}如有疑问,可留言解答。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值