常用时间日期工具类

复制代码
package org.source.dsmh.utils;

import org.apache.commons.lang3.StringUtils;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 时间处理工具类
 * <p>
 * DateUtils.java
 *
 * @author tangli
 */
public class DateUtils {

    // 默认日期格式
    public static final String DATE_FORMAT_DEFAULT = "yyyy-MM-dd";
    // 默认日期时间格式
    public static final String DATETIME_FORMAT_DEFAULT = "yyyy-MM-dd HH:mm:ss";

    public static Timestamp getNowDatetime() {
        Timestamp datetime = new Timestamp(System.currentTimeMillis());
        return datetime;
    }

    public static String getTomorrowDate() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 1);
        Date time = cal.getTime();
        return new SimpleDateFormat("yyyy-MM-dd").format(time);
    }

    public static String getYesterdayDate() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -1);
        Date time = cal.getTime();
        return new SimpleDateFormat("yyyy-MM-dd").format(time);
    }
  
  

      /****
       * 获取昨天日期
       * @param format 格式描述:例如:yyyy-MM-dd yyyy-MM-dd HH:mm:ss
       * @return
       */

       public static String getYesterdayDate(String format) {

if(StringUtils.isBlank(format)) {
            format="yyyy-MM-dd";
        }                       
         Calendar cal = Calendar.getInstance();
         cal.add(Calendar.DATE, -1);
         Date time = cal.getTime();             
         return  new SimpleDateFormat(format).format(time);
    }
    

    /**
     * 获取 “yyyy-MM-dd” 形式的当天日期的字符串
     */
    public static String getNowDate() {
        return DateUtils.formatTime(new Date(), DATE_FORMAT_DEFAULT);
    }

    /**
     * 获取 “yyyy-MM-dd HH:mm:ss” 形式的当天日期时间的字符串
     */
    public static String getNowtime() {
        return DateUtils.formatTime(new Date(), DATETIME_FORMAT_DEFAULT);
    }

    /**
     * 取两个日期中间相差的天数
     *
     * @param date1
     * @param date2
     * @return
     */
    public static int daySub(Date date1, Date date2) {
        long second = (date1.getTime() - date2.getTime()) / 1000;
        return (int) (second / 24 / 60 / 60);
    }

    /**
     * 取两个日期中间相差的分钟数
     *
     * @param date1
     * @param date2
     * @return
     */
    public static int minuteSub(Date date1, Date date2) {
        long second = (date1.getTime() - date2.getTime()) / 1000;
        return (int) (second / 60);
    }

    /**
     * 日期加天数
     *
     * @param date
     * @param days
     * @return
     */
    public static Date addDay(Date date, int days) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DAY_OF_MONTH, days);
        return c.getTime();
    }

    /**
     * 日期加年数
     *
     * @param date
     * @param years
     * @return
     */
    public static Date addYear(Date date, int years) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.YEAR, years);
        return c.getTime();
    }

    /**
     * 日期加小时数
     *
     * @param date
     * @param hour
     * @return
     */
    public static Date addHour(Date date, int hour) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.HOUR_OF_DAY, hour);
        return c.getTime();
    }

    /**
     * 日期加分钟数
     *
     * @param date
     * @param minute
     * @return
     */
    public static Date addMinute(Date date, int minute) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.MINUTE, minute);
        return c.getTime();
    }

    /**
     * 日期加秒钟数
     *
     * @param date
     * @param seconds
     * @return
     */
    public static Date addSeconds(Date date, int seconds) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.SECOND, seconds);
        return c.getTime();
    }

    /**
     * 以yyyy+separator+mm+separator+dd的格式显示年月日
     *
     * @param time
     * @param separator 分隔符,如果为“年月日” 则用"yyyy年MM月dd日"格式
     * @return
     */
    public static String formatDay(Date time, String separator) {
        if (separator == null) {
            separator = "-";
        }
        String formatStr = "";
        if (separator.equals("年月日")) {
            formatStr = "yyyy年MM月dd日";
        } else {
            formatStr = "yyyy" + separator + "MM" + separator + "dd";
        }
        return formatTime(time, formatStr);
    }

    /**
     * 以MM月dd日格式显示日期
     *
     * @param time
     * @return
     */
    public static String formatShortDay(Date time, String separator) {
        if (separator == null) {
            separator = "-";
        }
        String formatStr = "";
        if (separator.equals("月日")) {
            formatStr = "MM月dd日";
        } else {
            formatStr = "MM" + separator + "dd";
        }
        return formatTime(time, formatStr);
    }

    public static String formatDateForLate(Date time) {
        if (time == null) {
            return "";
        }
        int t = isSameDay(new Date(), time);
        if (t == 0) {
            return "今天";
        } else if (t == 1) {
            return "昨天";
        } else {
            return formatTime(time, "yyyy-MM-dd");
        }
    }

    /**
     * 以yyyy-MM-dd HH:mm的格式转换日期
     *
     * @param time java.util.Date
     * @return
     */
    public static String formatMinute(Date time) {
        return formatTime(time, "yyyy-MM-dd HH:mm");
    }

    /**
     * 以yyyy-MM-dd HH:mm:ss的格式转换日期
     *
     * @param time
     * @return
     */
    public static String formatSecond(Date time) {
        if (time == null) {
            return "";
        }
        return formatTime(time, "yyyy-MM-dd HH:mm:ss");
    }

    /**
     * 将时间转换成指定格式的字符串
     *
     * @param time   Date
     * @param format 格式描述:例如:yyyy-MM-dd yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static String formatTime(Date time, String format) {
        if (time != null) {
            SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(format, Locale.SIMPLIFIED_CHINESE);
            return DATE_FORMAT.format(time);
        } else {
            return "";
        }

    }

    /**
     * 将日期转换成指定格式的字符串
     *
     * @param date
     * @return
     */
    public static String formatDate(Date date) {
        if (date != null) {
            SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(DATE_FORMAT_DEFAULT,
                    Locale.SIMPLIFIED_CHINESE);
            return DATE_FORMAT.format(date);
        } else {
            return "";
        }

    }

    /**
     * 将秒计算出还有多少天、小时、分、秒,用于显示,例如:63s显示为:1分3秒
     *
     * @param second
     * @return
     */
    public static String showTimes(int second) {
        StringBuffer r = new StringBuffer();
        int days = second / (3600 * 24);
        int hours = second % (3600 * 24) / 3600;
        int minutes = second % 3600 / 60;
        int s = second % 60;
        if (days > 0) {
            r.append(days).append("天");
        }
        if (hours > 0) {
            r.append(hours).append("小时");
        }
        if (minutes > 0) {
            r.append(minutes).append("分");
        }
        if (s > 0) {
            r.append(s).append("秒");
        }
        return r.toString();
    }

    public static String showTimes(Date date) {
        return showTimes((int) ((System.currentTimeMillis() - date.getTime()) / 1000));
    }

    /**
     * 比较两个日期是否为同一天
     *
     * @param date1
     * @param date2
     * @return 0:是同一天 正数:date1>date2多少天 负数 date1<date2多少天
     */
    public static int isSameDay(Date date1, Date date2) {
        if (date1 == null || date2 == null) {
            return 0;
        }
        int r = 0;
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        c1.setTime(date1);
        c2.setTime(date2);
        c1.set(Calendar.HOUR_OF_DAY, 0);
        c1.set(Calendar.MINUTE, 0);
        c1.set(Calendar.SECOND, 0);
        c1.set(Calendar.MILLISECOND, 0);

        c2.set(Calendar.HOUR_OF_DAY, 0);
        c2.set(Calendar.MINUTE, 0);
        c2.set(Calendar.SECOND, 0);
        c2.set(Calendar.MILLISECOND, 0);
        r = c1.compareTo(c2);
        if (r != 0) {
            r = (int) ((c1.getTimeInMillis() - c2.getTimeInMillis()) / 24 / 3600 / 1000);
        }
        return r;
    }

    /**
     * 截断日期到天
     *
     * @param date
     * @return
     */
    public static Timestamp truncDate(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(date.getTime());
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);
        return new Timestamp(c.getTimeInMillis());
    }

    /**
     * 取当前日期
     *
     * @return
     */
    public static Timestamp getCurrentDay() {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);
        Timestamp time = new Timestamp(c.getTimeInMillis());
        return time;
    }

    /**
     * 取当月的第一天
     *
     * @return
     */
    public static Timestamp getCurrentMonth() {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_MONTH, 1);
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);
        Timestamp time = new Timestamp(c.getTimeInMillis());
        return time;
    }

    /**
     * 获取当前月份第一天
     *
     * @return
     */
    public static String getMonth() {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_MONTH, 1);
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        c.set(Calendar.MILLISECOND, 0);
        Timestamp time = new Timestamp(c.getTimeInMillis());
        return formatDate(time);
    }

    /**
     * 获取上个月第一天
     *
     * @return
     */
    public static String getYesFirMonth() {
        Calendar c = Calendar.getInstance();
        c.add(Calendar.MONTH, -1);
        c.set(Calendar.DAY_OF_MONTH, 1);
        Timestamp time = new Timestamp(c.getTimeInMillis());
        return formatDate(time);
    }

    /**
     * 获取上个月最后一天
     *
     * @return
     */
    public static String getYesLastMonth() {
        Calendar c = Calendar.getInstance();
        int MaxDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
        c.add(Calendar.MONTH, -1);
        c.set(Calendar.DAY_OF_MONTH, MaxDay);
        Timestamp time = new Timestamp(c.getTimeInMillis());
        return formatDate(time);
    }

    /**
     * 从字符串中获取时间
     *
     * @param s
     * @return
     */
    public static Timestamp parseDate(String s) {
        return parseDate(s, "yyyy-MM-dd");
    }

    public static long parseTimeLongFromStr(String s) {
        Timestamp time = parseDate(s, DATETIME_FORMAT_DEFAULT);
        return time.getTime();
    }

    /**
     * 从字符串中获取时间
     *
     * @param s
     * @param format
     * @return
     */
    public static Timestamp parseDate(String s, String format) {
        if (s == null || s.trim().length() == 0) {
            return null;
        }
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format, Locale.SIMPLIFIED_CHINESE);
            return new Timestamp(dateFormat.parse(s).getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 从字符串中获取时间
     *
     * @param s
     * @param format
     * @return
     */
    public static String parseDateStr(String s, String format) {
        if (s == null || s.trim().length() == 0) {
            return null;
        }
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat(format, Locale.SIMPLIFIED_CHINESE);
            return dateFormat.parse(s).getTime() + "";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 从字符串生成Date对象
     *
     * @param string
     * @param format
     * @return
     */
    public static Date parseStrToDate(String string, String format) {
        if (format == null) {
            format = "yyyy-MM-dd";
        }
        Date date = null;
        SimpleDateFormat dateformat = new SimpleDateFormat(format);
        try {
            date = dateformat.parse(string);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * date转成string
     * @param date
     * @param format
     * @return
     */
    public static String getSrtingToDay(Date date, String format) {
        String result = null;
        if (date != null) {
            SimpleDateFormat formats = new SimpleDateFormat(format);
            result = formats.format(date);
        }
        return result;
    }

    /**
     * 计算年龄
     *
     * @param birthYear
     * @return
     */
    public static int calAge(String birthYear) {
        return calAge(birthYear, null);
    }

    /**
     * 计算年龄
     *
     * @param birth
     * @param cardNo
     * @return
     */
    public static int calAge(Date birth, String cardNo) {
        if (birth == null) {
            if (StringUtils.isEmpty(cardNo)) {
                return 0;
            } else {
                IdcardInfoExtractor idcardInfo = new IdcardInfoExtractor(cardNo);
                return idcardInfo.getAge();
            }
        }
        Calendar cald = Calendar.getInstance();
        cald.setTime(new Date(birth.getTime()));

        String year = "" + cald.get(Calendar.YEAR);
        return calAge(year, null);
    }

    /**
     * 计算年龄
     *
     * @param birthYear
     * @param currentDay
     * @return
     */
    public static int calAge(String birthYear, Date currentDay) {
        Calendar n = Calendar.getInstance();
        if (currentDay == null) {
            n.setTime(getNowDatetime());
        } else {
            n.setTime(currentDay);
        }
        return n.get(Calendar.YEAR) - Integer.parseInt(birthYear);
    }

    /**
     * 以yyyy年MM月dd日的格式转换日期
     *
     * @param time
     * @return
     */
    public static String formatDateCN(Date time) {
        return formatTime(time, "yyyy年MM月dd日");
    }

    /**
     * 以yyyy/MM/dd的格式转换日期
     *
     * @param time
     * @return
     */
    public static String formatDateCN1(Date time) {
        return formatTime(time, "yyyy/MM/dd");
    }

    /**
     * 以yyyy-MM-dd的格式转换日期
     *
     * @param time
     * @return
     */
    public static String formatDateEN(Date time) {
        return formatTime(time, "yyyy-MM-dd");
    }

    public static Date getBeginDate(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        return c.getTime();
    }

    public static String getBeginDatestr(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.HOUR_OF_DAY, 0);
        c.set(Calendar.MINUTE, 0);
        c.set(Calendar.SECOND, 0);
        return formatSecond(c.getTime());
    }

    public static String getEndDatestr(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        return formatSecond(c.getTime());
    }

    public static Date getEndDate(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);

        c.set(Calendar.HOUR_OF_DAY, 23);
        c.set(Calendar.MINUTE, 59);
        c.set(Calendar.SECOND, 59);
        return c.getTime();
    }

    /**
     * 获取当前日期是星期几<br>
     *
     * @param dt
     * @return 当前日期是星期几
     */
    public static String getWeekOfDate(Date dt) {
        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        Calendar cal = Calendar.getInstance();
        cal.setTime(dt);
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
        if (w < 0) {
            w = 0;
        }
        return weekDays[w];
    }

    /**
     * 获取周一的日期<
     *
     * @param date
     * @return
     */
    public static Date getMonday(Date date) {

        Calendar calendar = Calendar.getInstance();

        calendar.setTime(date);

        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

        return calendar.getTime();

    }

    /**
     * 取得当前日期是多少周
     *
     * @param date
     * @return
     */
    public static int getWeekOfYear(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setMinimalDaysInFirstWeek(7);
        c.setTime(date);
        return c.get(Calendar.WEEK_OF_YEAR);
    }

    /**
     * 取得当前月份第几周
     *
     * @param date
     * @return
     */
    public static int getWeekOfMon(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        return c.get(Calendar.WEEK_OF_MONTH);
    }

    /**
     * 取得当前月份
     *
     * @param date
     * @return
     */
    public static int getfMon(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        return c.get(Calendar.MONTH) + 1;
    }

    /**
     * 得到某一年周的总数
     *
     * @param year
     * @return
     */
    public static int getMaxWeekNumOfYear(int year) {
        Calendar c = new GregorianCalendar();
        c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
        return getWeekOfYear(c.getTime());
    }

    /**
     * 得到某年某周的第一天
     *
     * @param year
     * @param week
     * @return
     */
    public static String getFirstDayOfWeek(int year, int week) {
        Calendar c = new GregorianCalendar();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, Calendar.JANUARY);
        c.set(Calendar.DATE, 1);
        Calendar cal = (GregorianCalendar) c.clone();
        cal.add(Calendar.DATE, week * 7);
        return formatDateCN1(getMonday(cal.getTime()));
    }

    /**
     * 得到某年某周的最后一天
     *
     * @param year
     * @param week
     * @return
     */
    public static String getLastDayOfWeek(int year, int week) {
        Calendar c = new GregorianCalendar();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, Calendar.JANUARY);
        c.set(Calendar.DATE, 1);
        Calendar cal = (GregorianCalendar) c.clone();
        cal.add(Calendar.DATE, week * 7);
        return formatDateCN1(getLastDayOfWeek(cal.getTime()));
    }

    /**
     * 取得指定日期所在周的最后一天
     *
     * @param date
     * @return
     */
    public static Date getLastDayOfWeek(Date date) {
        Calendar c = new GregorianCalendar();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.setTime(date);
        c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
        return c.getTime();
    }

    /**
     * 获取年份
     *
     * @param date
     * @return
     */
    public static int getYear(Date date) {
        Calendar c = new GregorianCalendar();

        return c.get(Calendar.YEAR);
    }

    /**
     * 获取一年的周的开始日期和截至日期
     *
     * @param year
     * @return weekNum 截至目前的周数
     */

    public static List<String> getYearforWeek(Integer year, Integer weekNum) {
        if (year == null) {
            year = DateUtils.getYear(new Date());
        }
        if (weekNum == null) {
            weekNum = DateUtils.getMaxWeekNumOfYear(year);
        }
        List<String> weekList = new ArrayList<String>();
        for (int i = 0; i < weekNum; i++) {
            StringBuffer s = new StringBuffer();
            s.append(DateUtils.getFirstDayOfWeek(year, i));
            s.append("-");
            s.append(DateUtils.getLastDayOfWeek(year, i));
            // System.out.println(s.toString());
            weekList.add(s.toString());
        }
        return weekList;

    }

    /**
     * 获取某年某周的开始日期和截至日期
     *
     * @param year
     * @return
     */

    public static String getCueWeekDateStr(Integer year, Integer week) {
        StringBuffer s = new StringBuffer();
        s.append(DateUtils.getFirstDayOfWeek(year, week));
        s.append("-");
        s.append(DateUtils.getLastDayOfWeek(year, week));
        // System.out.println(s.toString());

        return s.toString();

    }




    /**
     * 获取当前时间与指定时间的时间差(秒数) 時間格式:"yyyy-MM-dd HH:mm:ss"
     * 即 (myTime+diffTime) - curTime
     *
     * @throws ParseException
     */
    public static long diffDate(String mytime, int diffTime) throws ParseException {
        //倒计时时间
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long order_time = format.parse(mytime).getTime() + diffTime;
        Date now = new Date();
        long cur_time = now.getTime();
        return (order_time - cur_time) / 1000;
    }

    /**
     * 将时间戳转换为时间
     *
     * @param timeStamp 时间戳格式的时间字符串
     * @return
     */
    public static String stampToDateStr(String timeStamp, String format) {
        if (StringUtils.isEmpty(format)) {
            format = DATETIME_FORMAT_DEFAULT;
        }
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        long lt = new Long(timeStamp);
        Date date = new Date(lt);
        res = simpleDateFormat.format(date);
        return res;
    }

    /**
     * 将字符串转换为指定时间格式字符串
     *
     * @param timeStr    时间字符串 2020-10-10
     * @param fromFormat 时间字符串的日期格式 如: yyyy-MM-dd
     * @param toFormat   将要转成的日期格式 如: yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static String strToDateStr(String timeStr, String fromFormat, String toFormat) {
        if (StringUtils.isEmpty(fromFormat)) {
            fromFormat = DATETIME_FORMAT_DEFAULT;
        }
        if (StringUtils.isEmpty(toFormat)) {
            toFormat = DATETIME_FORMAT_DEFAULT;
        }
        String timestamp = parseDateStr(timeStr, fromFormat);
        return stampToDateStr(timestamp, toFormat);
    }

    /**
     * 将字符串转换为时间格式字符串, 截取多余的长度
     *
     * @param timeStr 时间字符串 2020-10-10 05:00:00
     * @return
     */
    public static String strToDateStr19(String timeStr) {
        if (StringUtils.isEmpty(timeStr)) {
            return timeStr;
        }
        if (timeStr.length() <= 19) {
            return timeStr;
        }
        return timeStr.substring(0, 19);

    }

    /**
     * 获取当前时间到凌晨的秒数
     * @return
     */
    public static Long getSecondsNextEarlyMorning() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DAY_OF_YEAR, 1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
    }

/****
* 将字符串时间转换为datetime
* @param timeStr
* @param fromFormat
* @return
*/
public static DateTime getDateTime(String timeStr, String fromFormat){
DateTimeFormatter formatter = DateTimeFormat.forPattern(fromFormat);
DateTime dt = formatter.parseDateTime(timeStr);
return dt;
}
public static void main(String[] args) { 
    System.out.println(getSecondsNextEarlyMorning());
}
}
复制代码

 

posted on   让代码飞  阅读(28)  评论(0)    收藏  举报

编辑推荐:
· C#.Net 筑基-优雅 LINQ 的查询艺术
· 一个自认为理想主义者的程序员,写了5年公众号、博客的初衷
· 大数据高并发核心场景实战,数据持久化之冷热分离
· 运维排查 | SaltStack 远程命令执行中文乱码问题
· Java线程池详解:高效并发编程的核心利器
阅读排行:
· C#.Net筑基-优雅LINQ的查询艺术
· Cursor生成UI,加一步封神
· 博客园众包平台:诚征3D影像景深延拓实时处理方案(预算8-15万)
· 为什么说方法的参数最好不要超过4个?
· 一个基于 .NET 8 开源免费、高性能、低占用的博客系统
< 2025年6月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

导航

一款免费在线思维导图工具推荐:https://www.processon.com/i/593e9a29e4b0898669edaf7f?full_name=python
点击右上角即可分享
微信分享提示