时间格式的转换

package com.cosmosource.core.utils;

import org.apache.commons.lang3.time.DateUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**

  • 类名称:DateUtil

  • 类描述:日期工具类

  • 创建人:Hsiao Lin

  • 修改人:

  • 修改时间:2015年05月21日 下午6:18:18

  • 修改备注:

  • @version 1.0.0

    */
    public class DateUtil extends DateUtils {

    public static String[] PARSE_PATTERNS = { “yyyy-MM-dd”, “yyyy-MM-dd HH:mm:ss”, “yyyy-MM-dd HH:mm”, “yyyy-MM”,
    “yyyy/MM/dd”, “yyyy/MM/dd HH:mm:ss”, “yyyy/MM/dd HH:mm”, “yyyy/MM”, “yyyy.MM.dd”, “yyyy.MM.dd HH:mm:ss”,
    “yyyy.MM.dd HH:mm”, “yyyy.MM” };

    public static Date parseDate(Object str) {
    if (str == null) {
    return null;
    }
    try {
    return DateUtils.parseDate(str.toString(), PARSE_PATTERNS);
    } catch (ParseException e) {
    return null;
    }
    }

    /**

    • 把时间根据时、分、秒转换为时间段

    • @param strDate

    •        字符串类型的日期参数
      
    • @return String 转换后的时间段

    • @since 1.0.0
      */
      public static String getTimes(String strDate) {
      String resultTimes = “”;

      SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
      java.util.Date now;

      try {
      now = new Date();
      java.util.Date date = df.parse(strDate);
      long times = now.getTime() - date.getTime();
      long day = times / (24 * 60 * 60 * 1000);
      long hour = (times / (60 * 60 * 1000) - day * 24);
      long min = ((times / (60 * 1000)) - day * 24 * 60 - hour * 60);
      long sec = (times / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);

       StringBuffer sb = new StringBuffer();
       if (hour > 0) {
       	sb.append(hour + "小时前");
       } else if (min > 0) {
       	sb.append(min + "分钟前");
       } else {
       	sb.append(sec + "秒前");
       }
       resultTimes = sb.toString();
      

      } catch (ParseException e) {
      e.printStackTrace();
      }
      return resultTimes;
      }

    /**

    • 按照yyyy/MM/dd HH:mm:ss的格式返回当前日期字符串
    • @return String类型的日期 yyyy/MM/dd HH:mm:ss
    • @since 1.0.0
      */
      public static String date2Str() {
      return date2Str(new Date(), “yyyy/MM/dd HH:mm:ss”);
      }

    /**

    • 按照yyyy-MM-dd HH:mm:ss的格式,日期转字符串
    • @param date
    •        Date类型的日期
      
    • @return String类型的日期 yyyy-MM-dd HH:mm:ss
    • @since 1.0.0
      */
      public static String date2Str(Date date) {
      return date2Str(date, “yyyy-MM-dd HH:mm:ss”);
      }

    /**

    • 按照参数format的格式把日期转字符串
    • @param date
    •        Date类型日期
      
    • @param format
    •        日期格式
      
    • @return String 格式化后的日期
    • @since 1.0.0
      */
      public static String date2Str(Date date, String format) {
      if (date != null) {
      SimpleDateFormat sdf = new SimpleDateFormat(format);
      return sdf.format(date);
      } else {
      return “”;
      }
      }

    /**

    • 按照yyyy-MM-dd HH:mm:ss的格式,字符串转日期
    • @param date
    •        字符串类型的日期
      
    • @return Date类型的日期
    • @since 1.0.0
      */
      public static Date str2Date(String date) {
      if (Tools.isNotEmpty(date)) {
      SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
      try {
      return sdf.parse(date);
      } catch (ParseException e) {
      e.printStackTrace();
      }
      return new Date();
      } else {
      return null;
      }
      }

    /**

    • DateTime变化(增减)
      //
      @Test
      public void testChange() {
      DateTime dateTime = new DateTime(2014, 1, 2, 10, 11, 12);

      // 得到1年2个月3天后的日期
      Assert.assertEquals(new DateTime(2015, 3, 5, 10, 11, 12), dateTime.plusYears(1).plusMonths(2).plusDays(3));
      }

    //*

    • 指定值(更改DateTime的特定部分为特定值)
      //
      @Test
      public void testSpecific() {
      DateTime dateTime = new DateTime(2014, 12, 2, 8, 12, 45, 666);

      // 把小时指定为13点
      Assert.assertEquals(new DateTime(2014, 12, 2, 13, 12, 45, 666), dateTime.withHourOfDay(13));
      }

    //*

    • 字符串和DateTime互转
      //
      @Test
      public void testToDateToString() {
      String str = “2014-12-02 08:12:45”;
      DateTime dateTime = new DateTime(2014, 12, 2, 8, 12, 45);

      // 字符串转化为DateTime
      DateTime parsedDateTime = DateTimeFormat.forPattern(“yyyy-MM-dd HH:mm:ss”).parseDateTime(str);
      Assert.assertEquals(dateTime, parsedDateTime);

      // DateTime转化为字符串,有两种方法
      String str01 = DateTimeFormat.forPattern(“yyyy-MM-dd HH:mm:ss”).print(dateTime);
      Assert.assertEquals(str, str01);

      String str02 = dateTime.toString(“yyyy-MM-dd HH:mm:ss”);
      Assert.assertEquals(str, str02);

    }

    //*

    • DateTime截断
      //
      @Test
      public void testTruncateTo() {
      DateTime dateTime = new DateTime(2014, 12, 2, 8, 12, 45, 666);

      // 精确到天
      DateTime tillDay = dateTime.dayOfMonth().roundFloorCopy();
      Assert.assertEquals(new DateTime(2014, 12, 2, 0, 0, 0), tillDay);

      // 精确到秒
      DateTime tillSecond = dateTime.secondOfMinute().roundFloorCopy();
      Assert.assertEquals(new DateTime(2014, 12, 2, 8, 12, 45), tillSecond);

    }

    //*

    • 得到某一天的23:59:59
      //
      @Test
      public void testWith() {
      DateTime dateTime = new DateTime(2014, 12, 2, 8, 12, 45);

      // 两种方法

      // 指定时分秒为23:59:59
      Assert.assertEquals(new DateTime(2014, 12, 2, 23, 59, 59),
      dateTime.withHourOfDay(23).withMinuteOfHour(59).withSecondOfMinute(59));

      // 取一天中的最后一秒(秒的最大值)
      Assert.assertEquals(new DateTime(2014, 12, 2, 23, 59, 59), dateTime.secondOfDay().withMaximumValue());

      // 得到当天的00:00:00
      Assert.assertEquals(new DateTime(2014, 12, 2, 0, 0, 0), dateTime.secondOfDay().withMinimumValue());
      }*/
      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值