java 操作实例

1、日期的加减操作

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

public class DateCalculate {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * 获取形如yyyy-MM-dd HH:mm:ss
     * @param date
     * @return
     */
    public static String datetimeToString(Date date) {
        return sdf.format(date);
    }

    /**
     * 根据时间字符串获取日期
     * @param dateString
     * @return
     * @throws ParseException
     */
    public static Date stringToDatetime(String dateString) throws ParseException {
        return sdf.parse(dateString);
    }

    /**
     * 获取本月最后一天
     * @return
     */
    public static Date getMonthStartDate(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH,1);
        return calendar.getTime();
    }

    /**
     * 获取本月最后一天
     * @return
     */
    public static Date getMonthEndDate(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        return calendar.getTime();
    }

    /**
     * 获取指定日期所属周的开始时间
     * @param date
     * @return
     */
    public static Date getBeginWeekDate(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == 1) {
            dayOfWeek += 7;
        }
        cal.add(Calendar.DATE,2 - dayOfWeek);
        return cal.getTime();
    }

    /**
     * 距离指定日期所属周结束时间
     * @return
     */
    public static Date getEndWeekDate(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == 1) {
            dayOfWeek += 7;
        }
        cal.add(Calendar.DATE,8 - dayOfWeek);
        return cal.getTime();
    }

    /**
     * 对指定日期进行年份加减操作
     * @param date
     * @param num
     * @return
     */
    public static Date calculateDateOfYear(Date date,Integer num) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.YEAR,num);
        return calendar.getTime();
    }

    /**
     * 对指定日期月份进行加减操作
     * @param date
     * @param num
     * @return
     */
    public static Date calculateDateOfMonth(Date date,Integer num) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH,num);
        return calendar.getTime();
    }

    /**
     * 对指定日期天数进行加减操作
     * @param date
     * @param num 负整数 正整数
     * @return
     */
    public static Date calculateDateOfDay(Date date,Integer num) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH,num);
        return calendar.getTime();
    }

    public static void main(String[] args) throws ParseException {

        System.out.println(datetimeToString(getMonthStartDate(sdf.parse("2019-12-04 12:09:52"))));
        System.out.println(datetimeToString(getEndWeekDate(sdf.parse("2019-12-04 12:09:52"))));
        System.out.println(datetimeToString(calculateDateOfYear(stringToDatetime("2019-12-04 12:09:52"),-2)));
    }
}  

原文地址:https://www.cnblogs.com/snow-wolf-1/p/12001370.html

时间: 2024-10-07 13:48:29

java 操作实例的相关文章

centos安装memcached和java操作实例

准备搭建memcached缓存集群.这里简单的记录一下搭建过程 由于memcached安装时,需要使用libevent类库,所以先安装libevent 下载地址http://www.monkey.org/~provos/libevent/ (一)我下载的是libevent-1.4.14b-stable.tar.gz 1|解压 tar zxvf libevent-1.4.14b-stable.tar.gz 2|进入文件 cd libevent-1.4.14b-stable 3.编译安装(默认安装到

SysLog简介和java操作实例

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 什么是SysLog SysLog的作用 Java如何连接开发SysLog应用 安装一个syslog服务器syslogwatcher 可以通过Listen和Stop控制是否开启监听 java客户端开发需要引入syslog4jjar包 服务器记录信息如图 这次为大家分享一项日志技术,syslog日志技术.微信公众分享号:lshaids6688 什么是SysLog syslog协议属于一种主从式协议:syslog发送端会传送出一个

memcached—Java操作Memcached实例

前面博客介绍了如何在Windows操作系统中安装Memcached,总结一下如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import jav

java 数组操作实例

对于任何编程语言,数组都是必须掌握的知识点,本文章向大家介绍java数组的一些操作实例.感兴趣的朋友可以参考一下. Java数组排序及元素查找 Java数组添加元素 Java获取数组长度 Java数组反转 Java数组输出 Java数组获取最大和最小值 Java数组合并 Java数组填充 Java数组扩容 Java数组排序及查找 Java删除数组元素 Java数组差集 Java数组交集 Java在数组中查找指定元素 Java判断数组是否相等 Java数组并集

java操作Hbase实例

所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apach

新浪微博数据解析与java操作Hbase实例

之前发过一篇开发新浪微博的文章,对于大家比较感兴趣的内容之一便是如何解析新浪微博的JSON. 其实一开始的时候,也遇过一些挫折,比如直接用JsonArray和JsonObject去解析JSON内容的话,是解析不了的. 因为JSON的格式比较固定,像新浪微博返回的JSON内容则是多了一个中括号及statues标签,如下: { "statuses": [ { "created_at": "Tue May 31 17:46:55 +0800 2011"

Java操作Redis的简单实例

Java操作Redis是必备学习的内容,那我直接上一个超级简单的案例给大家参考下! 一.创建RedisTest类,代码如下! import redis.clients.jedis.Jedis; public class RedisTest {     public static void main(String[] args) {         // TODO Auto-generated method stub         //连接redis服务         Jedis jedis 

Flex Socket与Java通信实例说明(转)

Flex Socket与Java通信实例说明(转) 这两天一直在flex的Socket ,现在终于懂了很多.由浅到深一步一步深入.慢慢体会实例,虽然实例都是在网上找的,但也经过了我的测试.我比较喜欢注释,也注释了很多. 跟着走你就会懂.. Flex端 和 Java端, 先运行Java端启动服务.然后在测试Flex. 实例一: Flex端: <?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow

java操作Excel

一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象.它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等. 二.HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”.也许HSSF的名字有点