java日期格式化返回date_Java日期时间格式化操作DateUtils 的整理

Java日期时间格式化操作DateUtils 的整理

直接上代码,总结了开发过程中经常用到的日期时间格式化操作!

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.concurrent.TimeUnit;

/**

* ClassName: DateUtils

* Description:时间操作工具类

*/

public class DateUtils {

private static final String[] UNIT_DESC = new String[]{"天", "小时", "分钟", "秒"};

/**

* 获得当前系统时间,格式为yyyyMMdd

*

* @return 格式化后的时间

*/

public static String currentYYYYMMDD() {

return getStrByDate(new Date(), "yyyyMMdd");

}

/**

* 获得当前系统时间,格式为HHmmss

*

* @return 格式化后的时间

*/

public static String currentHHMMSS() {

return getStrByDate(new Date(), "HHmmss");

}

/**

* 获得当前系统时间,格式为yyyyMMddHHmmss

*

* @return 格式化后的时间

*/

public static String currentYYYYMMDDHHmmss() {

return getStrByDate(new Date(), "yyyyMMddHHmmss");

}

/**

* 根据给定的字符串如:yyyy-MM-dd HH:mm:ss,(必须是这种格式) 返回一个日期日期形式

*

* @param strDate 要抛析的字符串,且字符串的形式必须:2007-09-10 07:00:00

* @return 将字符串抛析成日期的格式返回

* @throws ParseException 解析 format 字段失败

*/

public static java.util.Date getDateByStr(String strDate, String format) throws ParseException {

assert strDate != null && format != null;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);

return simpleDateFormat.parse(strDate);

}

/**

* 根据给定的日期,返回给定的字符串, 返回 字符串的形式是:yyyy-MM-dd HH:mm:ss

*

* @param date 要格式化的日期

* @return 将日期格式化后返回的字符串,以这中格式返回:yyyy-MM-dd HH:mm:ss

*/

public static String getStrByDate(Date date, String format) {

assert date != null && format != null;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);

return simpleDateFormat.format(date);

}

/**

* 得到当前时间

*

* @return 当前时间

*/

public static Date getDayOfMonth() {

Calendar now = Calendar.getInstance();

return now.getTime();

}

/**

* 得到每月第一天

*

* @param date 日期

* @return 日期月份的第一天

*/

public static Date getFirstDayOfMonth(Date date) {

Calendar nowday = Calendar.getInstance();

nowday.setTime(date);

nowday.set(Calendar.DATE, 1);// 把日期设置为当月第一天

return nowday.getTime();

}

/**

* 得到每月最后一天

*

* @param date 日期

* @return 日期月份最后一天

*/

public static Date getLastDayOfMonth(Date date) {

Calendar nowday = Calendar.getInstance();

nowday.setTime(date);

nowday.set(Calendar.DATE, 1);// 把日期设置为当月第一天

nowday.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天

return nowday.getTime();

}

/**

* 获取当前年份 格式:yyyy

*

* @param date 当前时间

* @return year

*/

public static String getCurrYear(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");

Date currYear = calendar.getTime();

return String.valueOf(dateFormat.format(currYear));

}

/**

* 获取当前月份 格式:MM

*

* @param date 当前时间

* @return Date

*/

public static String getCurrMonth(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

SimpleDateFormat dateFormat = new SimpleDateFormat("MM");

Date currMonth = calendar.getTime();

return String.valueOf(dateFormat.format(currMonth));

}

/**

* 得到此日期的最后一天

*

* @param d 日期

* @return 最后一天

*/

public static Date getLastDayByDate(Date d) {

Calendar newday = Calendar.getInstance();

newday.setTime(d);

int lastday;

int month = newday.get(Calendar.MONTH);

do {

lastday = newday.get(Calendar.DAY_OF_MONTH);

newday.add(Calendar.DAY_OF_MONTH, 1);

} while (newday.get(Calendar.MONTH) == month);

newday.set(Calendar.MONTH, month);

newday.set(Calendar.DAY_OF_MONTH, lastday);

return newday.getTime();

}

/**

* 将 yyyyMMdd 的字符窜 转化成 yyyy-MM-dd

*

* @param dateString yyyyMMdd格式的日期

* @return yyyy-MM-dd格式的日期

* @throws ParseException

*/

public static String formatyyyyMMdd(String dateString) throws ParseException {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");

Date date = simpleDateFormat.parse(dateString);

SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd");

return formatStr.format(date);

}

/**

* 将 yyyyMMdd 的字符窜 转化成 yyyy-MM-dd HH:mm:ss

*

* @param dateString

* @return

* @throws ParseException

*/

public static String formatyyyyMMddHHmmss(String dateString) throws ParseException {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");

Date date = simpleDateFormat.parse(dateString);

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

return formatStr.format(date);

}

/**

* 获取当前年份 格式:yyyy

*

* @return Date

*/

public static int getCurrYear() {

Calendar calendar = Calendar.getInstance();

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");

Date currYearFirst = calendar.getTime();

return Integer.valueOf(dateFormat.format(currYearFirst));

}

/**

* 获取当前时间前三月

*

* @return Date

*/

public static Date getLastThreeMonths() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.MONTH, -3);

calendar.add(Calendar.DAY_OF_MONTH, 1);

return calendar.getTime();

}

/**

* 获取当前时间前一个月

*

* @return Date

*/

public static Date getLastOneMonths() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.MONTH, -1);

calendar.add(Calendar.DAY_OF_MONTH, 1);

return calendar.getTime();

}

/**

* 获取当前时间前六个月

*

* @return Date

*/

public static Date getLastSixMonths() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.MONTH, -6);

calendar.add(Calendar.DAY_OF_MONTH, 1);

return calendar.getTime();

}

/**

* 获取某年第一天日期

*

* @param year 年份

* @return Date

*/

public static Date getCurrYearFirst(int year) {

Calendar calendar = Calendar.getInstance();

calendar.clear();

calendar.set(Calendar.YEAR, year);

return calendar.getTime();

}

/**

* 获取某年最后一天日期

*

* @param year 年份

* @return Date

*/

public static Date getCurrYearLast(int year) {

Calendar calendar = Calendar.getInstance();

calendar.clear();

calendar.set(Calendar.YEAR, year);

calendar.roll(Calendar.DAY_OF_YEAR, -1);

return calendar.getTime();

}

/**

* 格式化时间

*

* @param date 时间

* @param format 格式化模板

* @return 格式化后的时间

*/

public static String date2Str(Date date, String format) {

return getStrByDate(date, format);

}

/**

* 获得指定日期的前一天 yyyy-MM-dd

* @param date

* @return

*/

public static String getSpecifiedDayBefore(Date date, String dateFormat){

if (date == null) return null;

Calendar c = Calendar.getInstance();

c.setTime(date);

int day=c.get(Calendar.DATE);

c.set(Calendar.DATE,day-1);

String dayBefore=new SimpleDateFormat(dateFormat).format(c.getTime());

return dayBefore;

}

/**

* 获得指定日期的后一天 yyyy-MM-dd

*

* @param date

* @return

*/

public static String getSpecifiedDayAfter(Date date, String dateFormat) {

if (date == null) return null;

Calendar c = Calendar.getInstance();

c.setTime(date);

int day = c.get(Calendar.DATE);

c.set(Calendar.DATE, day + 1);

String dayAfter = new SimpleDateFormat(dateFormat).format(c.getTime());

return dayAfter;

}

/**

* 格式化持续时间

* 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。

*

* @param seconds 持续时间,单位(秒)

* @return 格式化后的字符串

* @see TimeUnit 时间单位转换工具

* @since 1.5

*/

public static String convertSeconds2Str(long seconds) {

StringBuilder sb = new StringBuilder();

long[] date = {TimeUnit.SECONDS.toDays(seconds), TimeUnit.SECONDS.toHours(seconds) % 24, TimeUnit.SECONDS.toMinutes(seconds) % 60, TimeUnit.SECONDS.toSeconds(seconds) % 60};

for (int i = 0; i < date.length; i++) {

long l = date[i];

if (l > 0) sb.append(l).append(UNIT_DESC[i]);

}

return sb.toString();

}

/**

* 格式化持续时间

* 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。

*

* @param seconds 持续时间,单位(分钟)

* @return 格式化后的字符串

* @see TimeUnit 时间单位转换工具

* @since 1.5

*/

public static String convertMinute2Str(long minute) {

StringBuilder sb = new StringBuilder();

long[] date = {TimeUnit.SECONDS.toHours(minute) % 24,TimeUnit.SECONDS.toMinutes(minute) % 60, TimeUnit.SECONDS.toSeconds(minute) % 60};

for (int i = 0; i < date.length; i++) {

long l = date[i];

if (l > 0) sb.append(l).append(UNIT_DESC[i]);

}

return sb.toString();

}

}

以上就是关于java 日期格式化操作的所有内容,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值