1. package com.changfu.common.util;
  2.  
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5.  
  6. import java.sql.Timestamp;
  7. import java.time.*;
  8. import java.time.format.DateTimeFormatter;
  9. import java.time.format.DateTimeParseException;
  10. import java.time.temporal.ChronoUnit;
  11. import java.util.Calendar;
  12. import java.util.Date;
  13. import java.util.GregorianCalendar;
  14.  
  15. /**
  16. * 时间计算工具类
  17. */
  18. public class DateUtil {
  19.  
  20. /**
  21. * the milli second of a day
  22. */
  23. public static final long DAYMILLI = 24 * 60 * 60 * 1000;
  24. /**
  25. * the milli seconds of an hour
  26. */
  27. public static final long HOURMILLI = 60 * 60 * 1000;
  28. /**
  29. * the milli seconds of a minute
  30. */
  31. public static final long MINUTEMILLI = 60 * 1000;
  32. /**
  33. * the milli seconds of a second
  34. */
  35. public static final long SECONDMILLI = 1000;
  36. /**
  37. * added time
  38. */
  39. public static final String TIMETO = " 23:59:59";
  40. /**
  41. * flag before
  42. */
  43. public static final transient int BEFORE = 1;
  44. /**
  45. * flag after
  46. */
  47. public static final transient int AFTER = 2;
  48. /**
  49. * flag equal
  50. */
  51. public static final transient int EQUAL = 3;
  52. /**
  53. * date format dd/MMM/yyyy:HH:mm:ss +0900
  54. */
  55. public static final String TIME_PATTERN_LONG = "dd/MMM/yyyy:HH:mm:ss +0900";
  56. /**
  57. * date format dd/MM/yyyy:HH:mm:ss +0900
  58. */
  59. public static final String TIME_PATTERN_LONG2 = "dd/MM/yyyy:HH:mm:ss +0900";
  60. /**
  61. * date format YYYY-MM-DD HH24:MI:SS
  62. */
  63. public static final String DB_TIME_PATTERN = "YYYY-MM-DD HH24:MI:SS";
  64. /**
  65. * date format YYYYMMDDHH24MISS
  66. */
  67. public static final String DB_TIME_PATTERN_1 = "YYYYMMDDHH24MISS";
  68. /**
  69. * date format dd/MM/yy HH:mm:ss
  70. */
  71. public static final String TIME_PATTERN_SHORT = "dd/MM/yy HH:mm:ss";
  72. /**
  73. * date format dd/MM/yy HH24:mm
  74. */
  75. public static final String TIME_PATTERN_SHORT_1 = "yyyy/MM/dd HH:mm";
  76. /**
  77. * date format yyyy年MM月dd日 HH:mm:ss
  78. */
  79. public static final String TIME_PATTERN_SHORT_2 = "yyyy年MM月dd日 HH:mm:ss";
  80. /**
  81. * date format yyyyMMddHHmmss
  82. */
  83. public static final String TIME_PATTERN_SESSION = "yyyyMMddHHmmss";
  84. /**
  85. * date format yyyyMMddHHmmssSSS
  86. */
  87. public static final String TIME_PATTERN_MILLISECOND = "yyyyMMddHHmmssSSS";
  88. /**
  89. * date format yyyyMMdd
  90. */
  91. public static final String DATE_FMT_0 = "yyyyMMdd";
  92. /**
  93. * date format yyyy/MM/dd
  94. */
  95. public static final String DATE_FMT_1 = "yyyy/MM/dd";
  96. /**
  97. * date format yyyy/MM/dd hh:mm:ss
  98. */
  99. public static final String DATE_FMT_2 = "yyyy/MM/dd hh:mm:ss";
  100. /**
  101. * date format yyyy-MM-dd
  102. */
  103. public static final String DATE_FMT_3 = "yyyy-MM-dd";
  104. /**
  105. * date format yyyy年MM月dd日
  106. */
  107. public static final String DATE_FMT_4 = "yyyy年MM月dd日";
  108. /**
  109. * date format yyyy-MM-dd HH
  110. */
  111. public static final String DATE_FMT_5 = "yyyy-MM-dd HH";
  112. /**
  113. * date format yyyy-MM
  114. */
  115. public static final String DATE_FMT_6 = "yyyy-MM";
  116. /**
  117. * date format MM月dd日 HH:mm
  118. */
  119. public static final String DATE_FMT_7 = "MM月dd日 HH:mm";
  120. /**
  121. * date format MM月dd日 HH:mm
  122. */
  123. public static final String DATE_FMT_8 = "HH:mm:ss";
  124. /**
  125. * date format MM月dd日 HH:mm
  126. */
  127. public static final String DATE_FMT_9 = "yyyy.MM.dd";
  128. public static final String DATE_FMT_10 = "HH:mm";
  129. public static final String DATE_FMT_11 = "yyyy.MM.dd HH:mm:ss";
  130. /**
  131. * date format yyyy年MM月dd日
  132. */
  133. public static final String DATE_FMT_12 = "MM月dd日";
  134. public static final String DATE_FMT_13 = "yyyy年MM月dd日HH时mm分";
  135. public static final String DATE_FMT_14 = "yyyyMM";
  136. public static final String DATE_FMT_15 = "MM-dd HH:mm:ss";
  137. public static final String DATE_FMT_16 = "yyyyMMddHHmm";
  138. public static final String DATE_FMT_17 = "HHmmss";
  139. public static final String DATE_FMT_18 = "yyyy";
  140. /**
  141. * date format yyyy-MM-dd HH:mm:ss
  142. */
  143. public static final String TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
  144. private static final Logger logger = LoggerFactory.getLogger(DateUtil.class);
  145.  
  146. /**
  147. * localDateTime 转 自定义格式string
  148. *
  149. * @param localDateTime
  150. * @param format 例:yyyy-MM-dd hh:mm:ss
  151. * @return
  152. */
  153. public static String formatLocalDateTimeToString(LocalDateTime localDateTime, String format) {
  154. try {
  155. DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
  156. return localDateTime.format(formatter);
  157.  
  158. } catch (DateTimeParseException e) {
  159. e.printStackTrace();
  160. }
  161. return null;
  162. }
  163.  
  164. /**
  165. * string 转 LocalDateTime
  166. *
  167. * @param dateStr 例:"2017-08-11 01:00:00"
  168. * @param format 例:"yyyy-MM-dd HH:mm:ss"
  169. * @return
  170. */
  171. public static LocalDateTime stringToLocalDateTime(String dateStr, String format) {
  172. try {
  173. DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
  174. return LocalDateTime.parse(dateStr, formatter);
  175. } catch (DateTimeParseException e) {
  176. e.printStackTrace();
  177. }
  178. return null;
  179. }
  180.  
  181. /**
  182. * 根据时间获取当月有多少天数
  183. *
  184. * @param date
  185. * @return
  186. */
  187. public static int getActualMaximum(Date date) {
  188.  
  189. return dateToLocalDateTime(date).getMonth().length(dateToLocalDate(date).isLeapYear());
  190. }
  191.  
  192. /**
  193. * 根据日期获得星期
  194. *
  195. * @param date
  196. * @return 1:星期一;2:星期二;3:星期三;4:星期四;5:星期五;6:星期六;7:星期日;
  197. */
  198. public static int getWeekOfDate(Date date) {
  199. return dateToLocalDateTime(date).getDayOfWeek().getValue();
  200. }
  201.  
  202. /**
  203. * 计算两个日期LocalDate相差的天数,不考虑日期前后,返回结果>=0
  204. *
  205. * @param before
  206. * @param after
  207. * @return
  208. */
  209. public static int getAbsDateDiffDay(LocalDate before, LocalDate after) {
  210.  
  211. return Math.abs(Period.between(before, after).getDays());
  212. }
  213.  
  214. /**
  215. * 计算两个时间LocalDateTime相差的天数,不考虑日期前后,返回结果>=0
  216. *
  217. * @param before
  218. * @param after
  219. * @return
  220. */
  221. public static int getAbsTimeDiffDay(LocalDateTime before, LocalDateTime after) {
  222.  
  223. return Math.abs(Period.between(before.toLocalDate(), after.toLocalDate()).getDays());
  224. }
  225.  
  226. /**
  227. * 计算两个时间LocalDateTime相差的月数,不考虑日期前后,返回结果>=0
  228. *
  229. * @param before
  230. * @param after
  231. * @return
  232. */
  233. public static int getAbsTimeDiffMonth(LocalDateTime before, LocalDateTime after) {
  234.  
  235. return Math.abs(Period.between(before.toLocalDate(), after.toLocalDate()).getMonths());
  236. }
  237.  
  238. /**
  239. * 计算两个时间LocalDateTime相差的年数,不考虑日期前后,返回结果>=0
  240. *
  241. * @param before
  242. * @param after
  243. * @return
  244. */
  245. public static int getAbsTimeDiffYear(LocalDateTime before, LocalDateTime after) {
  246.  
  247. return Math.abs(Period.between(before.toLocalDate(), after.toLocalDate()).getYears());
  248. }
  249.  
  250. /**
  251. * 根据传入日期返回星期几
  252. *
  253. * @param date 日期
  254. * @return 1-7 1:星期天,2:星期一,3:星期二,4:星期三,5:星期四,6:星期五,7:星期六
  255. */
  256. public static int getDayOfWeek(Date date) {
  257. Calendar cal = new GregorianCalendar();
  258. cal.setTime(date);
  259. return cal.get(Calendar.DAY_OF_WEEK);
  260. }
  261.  
  262. /**
  263. * 获取指定日期的当月的月份数
  264. *
  265. * @param date
  266. * @return
  267. */
  268. public static int getLastMonth(Date date) {
  269. return dateToLocalDateTime(date).getMonth().getValue();
  270.  
  271. }
  272.  
  273. /**
  274. * 特定日期的当月第一天
  275. *
  276. * @param date
  277. * @return
  278. */
  279. public static LocalDate newThisMonth(Date date) {
  280. LocalDate localDate = dateToLocalDate(date);
  281. return LocalDate.of(localDate.getYear(), localDate.getMonth(), 1);
  282. }
  283.  
  284. /**
  285. * 特定日期的当月最后一天
  286. *
  287. * @param date
  288. * @return
  289. */
  290. public static LocalDate lastThisMonth(Date date) {
  291. int lastDay = getActualMaximum(date);
  292. LocalDate localDate = dateToLocalDate(date);
  293. return LocalDate.of(localDate.getYear(), localDate.getMonth(), lastDay);
  294. }
  295.  
  296. /**
  297. * 特定日期的当年第一天
  298. *
  299. * @param date
  300. * @return
  301. */
  302. public static LocalDate newThisYear(Date date) {
  303. LocalDate localDate = dateToLocalDate(date);
  304. return LocalDate.of(localDate.getYear(), 1, 1);
  305.  
  306. }
  307.  
  308. public static void main(String[] args) {
  309. }
  310.  
  311. public static Timestamp getCurrentDateTime() {
  312. return new Timestamp(Instant.now().toEpochMilli());
  313.  
  314. }
  315.  
  316. /**
  317. * 获取当前时间
  318. *
  319. * @return LocalDateTime
  320. */
  321. public static LocalDateTime getCurrentLocalDateTime() {
  322. return LocalDateTime.now(Clock.system(ZoneId.of("Asia/Shanghai")));
  323.  
  324. }
  325.  
  326. /**
  327. * 修改日期时间的时间部分
  328. *
  329. * @param date
  330. * @param customTime 必须为"hh:mm:ss"这种格式
  331. */
  332. public static LocalDateTime reserveDateCustomTime(Date date, String customTime) {
  333. String dateStr = dateToLocalDate(date).toString() + " " + customTime;
  334. return stringToLocalDateTime(dateStr, "yyyy-MM-dd HH:mm:ss");
  335. }
  336.  
  337. /**
  338. * 修改日期时间的时间部分
  339. *
  340. * @param date
  341. * @param customTime 必须为"hh:mm:ss"这种格式
  342. */
  343. public static LocalDateTime reserveDateCustomTime(Timestamp date, String customTime) {
  344. String dateStr = timestampToLocalDate(date).toString() + " " + customTime;
  345. return stringToLocalDateTime(dateStr, "yyyy-MM-dd HH:mm:ss");
  346. }
  347.  
  348. /**
  349. * 把日期后的时间归0 变成(yyyy-MM-dd 00:00:00:000)
  350. *
  351. * @param date
  352. * @return LocalDateTime
  353. */
  354. public static final LocalDateTime zerolizedTime(Date date) {
  355. LocalDateTime localDateTime = dateToLocalDateTime(date);
  356. return LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 0, 0, 0, 0);
  357.  
  358. }
  359.  
  360. /**
  361. * 把时间变成(yyyy-MM-dd 00:00:00:000)
  362. *
  363. * @param date
  364. * @return LocalDateTime
  365. */
  366. public static LocalDateTime zerolizedTime(Timestamp date) {
  367. LocalDateTime localDateTime = timestampToLocalDateTime(date);
  368. return LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 0, 0, 0, 0);
  369. }
  370.  
  371. /**
  372. * 把日期的时间变成(yyyy-MM-dd 23:59:59:999)
  373. *
  374. * @param date
  375. * @return LocalDateTime
  376. */
  377. public static LocalDateTime getEndTime(Date date) {
  378. LocalDateTime localDateTime = dateToLocalDateTime(date);
  379. return LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59, 999 * 1000000);
  380. }
  381.  
  382. /**
  383. * 把时间变成(yyyy-MM-dd 23:59:59:999)
  384. *
  385. * @param date
  386. * @return LocalDateTime
  387. */
  388. public static LocalDateTime getEndTime(Timestamp date) {
  389. LocalDateTime localDateTime = timestampToLocalDateTime(date);
  390. return LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59, 999 * 1000000);
  391. }
  392.  
  393. /**
  394. * 计算特定时间到 当天 23.59.59.999 的秒数
  395. *
  396. * @return
  397. */
  398. public static int calculateToEndTime(Date date) {
  399. LocalDateTime localDateTime = dateToLocalDateTime(date);
  400. LocalDateTime end = getEndTime(date);
  401. return (int) (end.toEpochSecond(ZoneOffset.UTC) - localDateTime.toEpochSecond(ZoneOffset.UTC));
  402. }
  403.  
  404. /**
  405. * 增加或减少年/月/周/天/小时/分/秒数
  406. *
  407. * @param localDateTime 例:ChronoUnit.DAYS
  408. * @param chronoUnit
  409. * @param num
  410. * @return LocalDateTime
  411. */
  412. public static LocalDateTime addTime(LocalDateTime localDateTime, ChronoUnit chronoUnit, int num) {
  413. return localDateTime.plus(num, chronoUnit);
  414. }
  415.  
  416. /**
  417. * 增加或减少年/月/周/天/小时/分/秒数
  418. *
  419. * @param chronoUnit 例:ChronoUnit.DAYS
  420. * @param num
  421. * @return LocalDateTime
  422. */
  423. public static LocalDateTime addTime(Date date, ChronoUnit chronoUnit, int num) {
  424. long nanoOfSecond = (date.getTime() % 1000) * 1000000;
  425. LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(date.getTime() / 1000, (int) nanoOfSecond, ZoneOffset.of("+8"));
  426. return localDateTime.plus(num, chronoUnit);
  427. }
  428.  
  429. /**
  430. * 增加或减少年/月/周/天/小时/分/秒数
  431. *
  432. * @param chronoUnit 例:ChronoUnit.DAYS
  433. * @param num
  434. * @return LocalDateTime
  435. */
  436. public static LocalDateTime addTime(Timestamp date, ChronoUnit chronoUnit, int num) {
  437. long nanoOfSecond = (date.getTime() % 1000) * 1000000;
  438. LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(date.getTime() / 1000, (int) nanoOfSecond, ZoneOffset.of("+8"));
  439. return localDateTime.plus(num, chronoUnit);
  440. }
  441.  
  442. /**
  443. * Date 转 LocalDateTime
  444. *
  445. * @param date
  446. * @return LocalDateTime
  447. */
  448. public static LocalDateTime dateToLocalDateTime(Date date) {
  449. long nanoOfSecond = (date.getTime() % 1000) * 1000000;
  450. LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(date.getTime() / 1000, (int) nanoOfSecond, ZoneOffset.of("+8"));
  451.  
  452. return localDateTime;
  453. }
  454.  
  455. /**
  456. * Timestamp 转 LocalDateTime
  457. *
  458. * @param date
  459. * @return LocalDateTime
  460. */
  461. public static LocalDateTime timestampToLocalDateTime(Timestamp date) {
  462. LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(date.getTime() / 1000, date.getNanos(), ZoneOffset.of("+8"));
  463.  
  464. return localDateTime;
  465. }
  466.  
  467. /**
  468. * Date 转 LocalDateTime
  469. *
  470. * @param date
  471. * @return LocalDate
  472. */
  473. public static LocalDate dateToLocalDate(Date date) {
  474.  
  475. return dateToLocalDateTime(date).toLocalDate();
  476. }
  477.  
  478. /**
  479. * timestamp 转 LocalDateTime
  480. *
  481. * @param date
  482. * @return LocalDate
  483. */
  484. public static LocalDate timestampToLocalDate(Timestamp date) {
  485.  
  486. return timestampToLocalDateTime(date).toLocalDate();
  487. }
  488.  
  489. /**
  490. * 比较两个LocalDateTime是否同一天
  491. *
  492. * @param begin
  493. * @param end
  494. * @return
  495. */
  496. public static boolean isTheSameDay(LocalDateTime begin, LocalDateTime end) {
  497. return begin.toLocalDate().equals(end.toLocalDate());
  498. }
  499.  
  500. /**
  501. * 比较两个时间LocalDateTime大小
  502. *
  503. * @param time1
  504. * @param time2
  505. * @return 1:第一个比第二个大;0:第一个与第二个相同;-1:第一个比第二个小
  506. */
  507. public static int compareTwoTime(LocalDateTime time1, LocalDateTime time2) {
  508.  
  509. if (time1.isAfter(time2)) {
  510. return 1;
  511. } else if (time1.isBefore(time2)) {
  512. return -1;
  513. } else {
  514. return 0;
  515. }
  516. }
  517.  
  518. /**
  519. * 比较time1,time2两个时间相差的秒数,如果time1<=time2,返回0
  520. *
  521. * @param time1
  522. * @param time2
  523. */
  524. public static long getTwoTimeDiffSecond(Timestamp time1, Timestamp time2) {
  525. long diff = timestampToLocalDateTime(time1).toEpochSecond(ZoneOffset.UTC) - timestampToLocalDateTime(time2).toEpochSecond(ZoneOffset.UTC);
  526. if (diff > 0) {
  527. return diff;
  528. } else {
  529. return 0;
  530. }
  531. }
  532.  
  533. /**
  534. * 比较time1,time2两个时间相差的分钟数,如果time1<=time2,返回0
  535. *
  536. * @param time1
  537. * @param time2
  538. */
  539. public static long getTwoTimeDiffMin(Timestamp time1, Timestamp time2) {
  540. long diff = getTwoTimeDiffSecond(time1, time2) / 60;
  541. if (diff > 0) {
  542. return diff;
  543. } else {
  544. return 0;
  545. }
  546. }
  547.  
  548. /**
  549. * 比较time1,time2两个时间相差的小时数,如果time1<=time2,返回0
  550. *
  551. * @param time1
  552. * @param time2
  553. */
  554. public static long getTwoTimeDiffHour(Timestamp time1, Timestamp time2) {
  555. long diff = getTwoTimeDiffSecond(time1, time2) / 3600;
  556. if (diff > 0) {
  557. return diff;
  558. } else {
  559. return 0;
  560. }
  561. }
  562.  
  563. /**
  564. * 判断当前时间是否在时间范围内
  565. *
  566. * @param startTime
  567. * @param endTime
  568. * @return
  569. */
  570. public static boolean isTimeInRange(Date startTime, Date endTime) throws Exception {
  571. LocalDateTime now = getCurrentLocalDateTime();
  572. LocalDateTime start = dateToLocalDateTime(startTime);
  573. LocalDateTime end = dateToLocalDateTime(endTime);
  574. return (start.isBefore(now) && end.isAfter(now)) || start.isEqual(now) || end.isEqual(now);
  575. }
  576.  
  577. }
  578. http://blog.csdn.net/chenleixing/article/details/44408875
  579.  
  580. ————————————————
  581. 版权声明:本文为CSDN博主「feicongcong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
  582. 原文链接:https://blog.csdn.net/feicongcong/article/details/78224494

jdk8 时间日期工具类(转)的更多相关文章

  1. 11、Java 日期时间 日期工具类

    一.简介 在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题.故此,Java8引入了一套全新的日期时间处理 ...

  2. 【commons】时间日期工具类——commons-lang3-time

    推荐参考:http://www.cnblogs.com/java-class/p/4845962.html https://blog.csdn.net/yihaoawang/article/detai ...

  3. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  4. [java工具类01]__构建格式化输出日期和时间的工具类

    在之前的学习中,我写过一篇关于字符串格式化的,就主要设计到了时间以及日期的各种格式化显示的设置,其主要时通过String类的fomat()方法实现的. 我们可以通过使用不同的转换符来实现格式化显示不同 ...

  5. Java日期时间实用工具类

    Java日期时间实用工具类 1.Date (java.util.Date)    Date();        以当前时间构造一个Date对象    Date(long);        构造函数   ...

  6. Java获取上周,本周,本月,本年,开始结束时间 。日期工具类

    由于获取日期经常会使用到,所有我自己写了一个工具类 1.基本上能用上的都写出来了,包括:1)获取当天的开始时间 2)获取当天的结束时间 3)获取昨天的开始时间 4)获取昨天的结束时间 5)获取明天的开 ...

  7. 日期工具类 - DateUtil.java

    日期工具类,提供对日期的格式化和转换方法.获取区间日期.指定日期.每月最后一天等. 源码如下:(点击下载 -DateUtil.java.commons-lang-2.6.jar ) import ja ...

  8. JS 日期工具类-基于yDate

    源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. ...

  9. JAVA 8 日期工具类

    JAVA 8 日期工具类 主题描述 JAVA中日期时间的历史 代码成果 主题描述 JAVA的日期时间一直比较混乱,本来以为joda会是巅峰,但是JAVA 8改变了我的思想.但是即便在JAVA 8面前, ...

随机推荐

  1. confluence导出PDF格式文件不显示中文解决

    由于confluence导出PDF格式文件需要应用字体文件,下载字体文件在confluence管理员界面安装即可. 我这里使用从simhei.ttf楷体,可以从windowns主机里下载(c:/win ...

  2. 使用 Mybatis-plus 进行 crud 操作

    1 Mybatis-Plus简介 1.1 什么是Mybatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化 ...

  3. 【AtCoder】ARC079

    ARC079题解 C - Cat Snuke and a Voyage #include <bits/stdc++.h> #define fi first #define se secon ...

  4. 【k8s第二步】Kubernetes-Kubeadm部署安装【已修正错误】

    ⒈开启kube-proxy的ipvs的前置条件 模式改为lvs调度的方式,kube-proxy主要解决的是svc(service)与pod之间的调度关系,ipvs的调度方式可以极大的增加它的访问效率, ...

  5. VIM纵向编辑【转】

    原文:https://www.ibm.com/developerworks/cn/linux/l-cn-vimcolumn/index.html Vim 的纵向编辑模式启动方便,使用灵活,还可以配合上 ...

  6. MySQL SELECT语法(四)UNION语法详解

    源自MySQL 5.7 官方手册:13.2.9.3 UNION Syntax 一.UNION语法 UNION用于将多个SELECT语句的结果合并到一个结果集中. SELECT ... UNION [A ...

  7. 泛型约束:接口约束、new()构造函数约束、组合约束(即多种约束合并)

    泛型 接口约束: using System; namespace ConsoleApp1 { /* * * 接口约束:where T:interfaceName * T是类型形参的名称,interfa ...

  8. sqlserver跨库操作数据

    垮库只能读操作,写操作需要设置权限. USE [jdddb] GO /****** Object: StoredProcedure [dbo].[proc_LYOrderCancel] Script ...

  9. 每天一个Linux命令之:chage

    命令简介: 该命令用于密码时效管理.它可以修改账号和密码的有效期.对于chage命令的描述如下所示: The chage command changes the number of days betw ...

  10. 《数字图像处理(MATLAB)》冈萨雷斯

    <数字图像处理(MATLAB)>冈萨雷斯 未完结! 参考:数字图像处理——https://blog.csdn.net/dujing2019/article/category/8820151 ...