[Java] Java日期时间操作类 →→→→→进入此内容的聊天室

来自 , 2019-04-02, 写在 Java, 查看 143 次.
URL http://www.code666.cn/view/84d2004b
  1. /**
  2. 日期类
  3. * @version 1.0
  4. */
  5.  
  6. import java.util.*;
  7. import java.text.*;
  8. import java.util.Calendar;
  9.  
  10. public class VeDate {
  11. /**
  12. * 获取现在时间
  13. *
  14. * @return 返回时间类型 yyyy-MM-dd HH:mm:ss
  15. */
  16. public static Date getNowDate() {
  17. Date currentTime = new Date();
  18. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  19. String dateString = formatter.format(currentTime);
  20. Date currentTime_2 = formatter.parse(dateString, pos);
  21. return currentTime_2;
  22. }
  23.  
  24.  /**
  25. * 获取现在时间
  26. *
  27. * @return返回短时间格式 yyyy-MM-dd
  28. */
  29. public static Date getNowDateShort() {
  30. Date currentTime = new Date();
  31. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
  32. String dateString = formatter.format(currentTime);
  33. Date currentTime_2 = formatter.parse(dateString, pos);
  34. return currentTime_2;
  35. }
  36.  
  37.  /**
  38. * 获取现在时间
  39. *
  40. * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
  41. */
  42. public static String getStringDate() {
  43. Date currentTime = new Date();
  44. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  45. String dateString = formatter.format(currentTime);
  46. return dateString;
  47. }
  48.  
  49.  /**
  50. * 获取现在时间
  51. *
  52. * @return 返回短时间字符串格式yyyy-MM-dd
  53. */
  54. public static String getStringDateShort() {
  55. Date currentTime = new Date();
  56. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
  57. String dateString = formatter.format(currentTime);
  58. return dateString;
  59. }
  60.  
  61.  /**
  62. * 获取时间 小时:分;秒 HH:mm:ss
  63. *
  64. * @return
  65. */
  66. public static String getTimeShort() {
  67. SimpleDateFormat formatter = new SimpleDateFormat(“HH:mm:ss”);
  68. Date currentTime = new Date();
  69. String dateString = formatter.format(currentTime);
  70. return dateString;
  71. }
  72.  
  73.  /**
  74. * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
  75. *
  76. * @param strDate
  77. * @return
  78. */
  79. public static Date strToDateLong(String strDate) {
  80. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  81. Date strtodate = formatter.parse(strDate, pos);
  82. return strtodate;
  83. }
  84.  
  85.  /**
  86. * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
  87. *
  88. * @param dateDate
  89. * @return
  90. */
  91. public static String dateToStrLong(java.util.Date dateDate) {
  92. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  93. String dateString = formatter.format(dateDate);
  94. return dateString;
  95. }
  96.  
  97.  /**
  98. * 将短时间格式时间转换为字符串 yyyy-MM-dd
  99. *
  100. * @param dateDate
  101. * @param k
  102. * @return
  103. */
  104. public static String dateToStr(java.util.Date dateDate) {
  105. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
  106. String dateString = formatter.format(dateDate);
  107. return dateString;
  108. }
  109.  
  110.  /**
  111. * 将短时间格式字符串转换为时间 yyyy-MM-dd
  112. *
  113. * @param strDate
  114. * @return
  115. */
  116. public static Date strToDate(String strDate) {
  117. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
  118. Date strtodate = formatter.parse(strDate, pos);
  119. return strtodate;
  120. }
  121.  
  122.  /**
  123. * 得到现在时间
  124. *
  125. * @return
  126. */
  127. public static Date getNow() {
  128. Date currentTime = new Date();
  129. return currentTime;
  130. }
  131.  
  132.  /**
  133. * 提取一个月中的最后一天
  134. *
  135. * @param day
  136. * @return
  137. */
  138. public static Date getLastDate(long day) {
  139. Date date = new Date();
  140. long date_3_hm = date.getTime()3600000 * 34 * day;
  141. Date date_3_hm_date = new Date(date_3_hm);
  142. return date_3_hm_date;
  143. }
  144.  
  145.  /**
  146. * 得到现在时间
  147. *
  148. * @return 字符串 yyyyMMdd HHmmss
  149. */
  150. public static String getStringToday() {
  151. Date currentTime = new Date();
  152. SimpleDateFormat formatter = new SimpleDateFormat(“yyyyMMdd HHmmss”);
  153. String dateString = formatter.format(currentTime);
  154. return dateString;
  155. }
  156.  
  157.  /**
  158. * 得到现在小时
  159. */
  160. public static String getHour() {
  161. Date currentTime = new Date();
  162. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  163. String dateString = formatter.format(currentTime);
  164. String hour;
  165. hour = dateString.substring(11, 13);
  166. return hour;
  167. }
  168.  
  169.  /**
  170. * 得到现在分钟
  171. *
  172. * @return
  173. */
  174. public static String getTime() {
  175. Date currentTime = new Date();
  176. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  177. String dateString = formatter.format(currentTime);
  178. String min;
  179. min = dateString.substring(14, 16);
  180. return min;
  181. }
  182.  
  183.  /**
  184. * 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
  185. *
  186. * @param sformat
  187. *            yyyyMMddhhmmss
  188. * @return
  189. */
  190. public static String getUserDate(String sformat) {
  191. Date currentTime = new Date();
  192. SimpleDateFormat formatter = new SimpleDateFormat(sformat);
  193. String dateString = formatter.format(currentTime);
  194. return dateString;
  195. }
  196.  
  197.  /**
  198. * 二个小时时间间的差值,必须保证二个时间都是”HH:MM”的格式,返回字符型的分钟
  199. */
  200. public static String getTwoHour(String st1, String st2) {
  201. String[] kk = null;
  202. String[] jj = null;
  203. kk = st1.split(:);
  204. jj = st2.split(:);
  205. if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
  206. return0;
  207. else {
  208. double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;
  209. double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;
  210. if ((y – u) > 0)
  211. return y – u + “”;
  212. else
  213. return0;
  214. }
  215. }
  216.  
  217.  /**
  218. * 得到二个日期间的间隔天数
  219. */
  220. public static String getTwoDay(String sj1, String sj2) {
  221. SimpleDateFormat myFormatter = new SimpleDateFormat(“yyyy-MM-dd”);
  222. long day = 0;
  223. try {
  224. java.util.Date date = myFormatter.parse(sj1);
  225. java.util.Date mydate = myFormatter.parse(sj2);
  226. day = (date.getTime() – mydate.getTime()) / (24 * 60 * 60 * 1000);
  227. } catch (Exception e) {
  228. return “”;
  229. }
  230. return day + “”;
  231. }
  232.  
  233.  /**
  234. * 时间前推或后推分钟,其中JJ表示分钟.
  235. */
  236. public static String getPreTime(String sj1, String jj) {
  237. SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
  238. String mydate1 = “”;
  239. try {
  240. Date date1 = format.parse(sj1);
  241. long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
  242. date1.setTime(Time * 1000);
  243. mydate1 = format.format(date1);
  244. } catch (Exception e) {
  245. }
  246. return mydate1;
  247. }
  248.  
  249.  /**
  250. * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
  251. */
  252. public static String getNextDay(String nowdate, String delay) {
  253. try{
  254. SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”);
  255. String mdate = “”;
  256. Date d = strToDate(nowdate);
  257. long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
  258. d.setTime(myTime * 1000);
  259. mdate = format.format(d);
  260. return mdate;
  261. }catch(Exception e){
  262. return “”;
  263. }
  264. }
  265.  
  266.  /**
  267. * 判断是否润年
  268. *
  269. * @param ddate
  270. * @return
  271. */
  272. public static boolean isLeapYear(String ddate) {
  273.  
  274.   /**
  275. * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
  276. * 3.能被4整除同时能被100整除则不是闰年
  277. */
  278. Date d = strToDate(ddate);
  279. gc.setTime(d);
  280. int year = gc.get(Calendar.YEAR);
  281. if ((year % 400) == 0)
  282. return true;
  283. else if ((year % 4) == 0) {
  284. if ((year % 100) == 0)
  285. return false;
  286. else
  287. return true;
  288. } else
  289. return false;
  290. }
  291.  
  292.  /**
  293. * 返回美国时间格式 26 Apr 2006
  294. *
  295. * @param str
  296. * @return
  297. */
  298. public static String getEDate(String str) {
  299. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
  300. Date strtodate = formatter.parse(str, pos);
  301. String j = strtodate.toString();
  302. String[] k = j.split(” “);
  303. return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
  304. }
  305.  
  306.  /**
  307. * 获取一个月的最后一天
  308. *
  309. * @param dat
  310. * @return
  311. */
  312. public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
  313. String str = dat.substring(0, 8);
  314. String month = dat.substring(5, 7);
  315. int mon = Integer.parseInt(month);
  316. if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
  317. str +=31;
  318. } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
  319. str +=30;
  320. } else {
  321. if (isLeapYear(dat)) {
  322. str +=29;
  323. } else {
  324. str +=28;
  325. }
  326. }
  327. return str;
  328. }
  329.  
  330.  /**
  331. * 判断二个时间是否在同一个周
  332. *
  333. * @param date1
  334. * @param date2
  335. * @return
  336. */
  337. public static boolean isSameWeekDates(Date date1, Date date2) {
  338. Calendar cal1 = Calendar.getInstance();
  339. Calendar cal2 = Calendar.getInstance();
  340. cal1.setTime(date1);
  341. cal2.setTime(date2);
  342. int subYear = cal1.get(Calendar.YEAR) – cal2.get(Calendar.YEAR);
  343. if (0 == subYear) {
  344. if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
  345. return true;
  346. } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
  347. // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
  348. if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
  349. return true;
  350. } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
  351. if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
  352. return true;
  353. }
  354. return false;
  355. }
  356.  
  357.  /**
  358. * 产生周序列,即得到当前时间所在的年度是第几周
  359. *
  360. * @return
  361. */
  362. public static String getSeqWeek() {
  363. Calendar c = Calendar.getInstance(Locale.CHINA);
  364. String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
  365. if (week.length() == 1)
  366. week =0+ week;
  367. String year = Integer.toString(c.get(Calendar.YEAR));
  368. return year + week;
  369. }
  370.  
  371.  /**
  372. * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
  373. *
  374. * @param sdate
  375. * @param num
  376. * @return
  377. */
  378. public static String getWeek(String sdate, String num) {
  379. // 再转换为时间
  380. Date dd = VeDate.strToDate(sdate);
  381. Calendar c = Calendar.getInstance();
  382. c.setTime(dd);
  383. if (num.equals(1)) // 返回星期一所在的日期
  384. c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  385. else if (num.equals(2)) // 返回星期二所在的日期
  386. c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
  387. else if (num.equals(3)) // 返回星期三所在的日期
  388. c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
  389. else if (num.equals(4)) // 返回星期四所在的日期
  390. c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
  391. else if (num.equals(5)) // 返回星期五所在的日期
  392. c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
  393. else if (num.equals(6)) // 返回星期六所在的日期
  394. c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
  395. else if (num.equals(0)) // 返回星期日所在的日期
  396. c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  397. return new SimpleDateFormat(“yyyy-MM-dd”).format(c.getTime());
  398. }
  399.  
  400.  /**
  401. * 根据一个日期,返回是星期几的字符串
  402. *
  403. * @param sdate
  404. * @return
  405. */
  406. public static String getWeek(String sdate) {
  407. // 再转换为时间
  408. Date date = VeDate.strToDate(sdate);
  409. Calendar c = Calendar.getInstance();
  410. c.setTime(date);
  411. // int hour=c.get(Calendar.DAY_OF_WEEK);
  412. // hour中存的就是星期几了,其范围 1~7
  413. // 1=星期日 7=星期六,其他类推
  414. return new SimpleDateFormat(“EEEE”).format(c.getTime());
  415. }
  416. public static String getWeekStr(String sdate){
  417. String str = “”;
  418. str = VeDate.getWeek(sdate);
  419. if(1″.equals(str)){
  420. str = “星期日”;
  421. }else if(2″.equals(str)){
  422. str = “星期一”;
  423. }else if(3″.equals(str)){
  424. str = “星期二”;
  425. }else if(4″.equals(str)){
  426. str = “星期三”;
  427. }else if(5″.equals(str)){
  428. str = “星期四”;
  429. }else if(6″.equals(str)){
  430. str = “星期五”;
  431. }else if(7″.equals(str)){
  432. str = “星期六”;
  433. }
  434. return str;
  435. }
  436.  
  437.  /**
  438. * 两个时间之间的天数
  439. *
  440. * @param date1
  441. * @param date2
  442. * @return
  443. */
  444. public static long getDays(String date1, String date2) {
  445. if (date1 == null || date1.equals(“”))
  446. return 0;
  447. if (date2 == null || date2.equals(“”))
  448. return 0;
  449. // 转换为标准时间
  450. SimpleDateFormat myFormatter = new SimpleDateFormat(“yyyy-MM-dd”);
  451. java.util.Date date = null;
  452. java.util.Date mydate = null;
  453. try {
  454. date = myFormatter.parse(date1);
  455. mydate = myFormatter.parse(date2);
  456. } catch (Exception e) {
  457. }
  458. long day = (date.getTime() – mydate.getTime()) / (24 * 60 * 60 * 1000);
  459. return day;
  460. }
  461.  
  462.  /**
  463. * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间
  464. * 此函数返回该日历第一行星期日所在的日期
  465. *
  466. * @param sdate
  467. * @return
  468. */
  469. public static String getNowMonth(String sdate) {
  470. // 取该时间所在月的一号
  471. sdate = sdate.substring(0, 8) + “01″;
  472.  
  473.   // 得到这个月的1号是星期几
  474. Date date = VeDate.strToDate(sdate);
  475. Calendar c = Calendar.getInstance();
  476. c.setTime(date);
  477. int u = c.get(Calendar.DAY_OF_WEEK);
  478. String newday = VeDate.getNextDay(sdate, (1 – u) + “”);
  479. return newday;
  480. }
  481.  
  482.  /**
  483. * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数
  484. *
  485. * @param k
  486. *            表示是取几位随机数,可以自己定
  487. */
  488.  
  489.  public static String getNo(int k) {
  490.  
  491.   return getUserDate(“yyyyMMddhhmmss”) + getRandom(k);
  492. }
  493.  
  494.  /**
  495. * 返回一个随机数
  496. *
  497. * @param i
  498. * @return
  499. */
  500. public static String getRandom(int i) {
  501. Random jjj = new Random();
  502. // int suiJiShu = jjj.nextInt(9);
  503. if (i == 0)
  504. return “”;
  505. String jj = “”;
  506. for (int k = 0; k < i; k++) {
  507. jj = jj + jjj.nextInt(9);
  508. }
  509. return jj;
  510. }
  511.  
  512.  /**
  513. *
  514. * @param args
  515. */
  516. public static boolean RightDate(String date) {
  517.  
  518.   SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
  519. ;
  520. if (date == null)
  521. return false;
  522. if (date.length() > 10) {
  523. sdf = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
  524. } else {
  525. sdf = new SimpleDateFormat(“yyyy-MM-dd”);
  526. }
  527. try {
  528. sdf.parse(date);
  529. } catch (ParseException pe) {
  530. return false;
  531. }
  532. return true;
  533. }
  534.  
  535.  /***************************************************************************
  536. * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1
  537. * 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回
  538. **************************************************************************/
  539. public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {
  540. Date currentTime = new Date();
  541. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
  542. String dateString = formatter.format(currentTime);
  543. String s_nd = dateString.substring(0, 4); // 年份
  544. String s_yf = dateString.substring(5, 7); // 月份
  545. String s_rq = dateString.substring(8, 10); // 日期
  546. String sreturn = “”;
  547. roc.util.MyChar mc = new roc.util.MyChar();
  548. if (sdate == null || sdate.equals(“”) || !mc.Isdate(sdate)) { // 处理空值情况
  549. if (nd.equals(1)) {
  550. sreturn = s_nd;
  551. // 处理间隔符
  552. if (format.equals(1))
  553. sreturn = sreturn + “年”;
  554. else if (format.equals(2))
  555. sreturn = sreturn +-;
  556. else if (format.equals(3))
  557. sreturn = sreturn +/;
  558. else if (format.equals(5))
  559. sreturn = sreturn + “.”;
  560. }
  561. // 处理月份
  562. if (yf.equals(1)) {
  563. sreturn = sreturn + s_yf;
  564. if (format.equals(1))
  565. sreturn = sreturn + “月”;
  566. else if (format.equals(2))
  567. sreturn = sreturn +-;
  568. else if (format.equals(3))
  569. sreturn = sreturn +/;
  570. else if (format.equals(5))
  571. sreturn = sreturn + “.”;
  572. }
  573. // 处理日期
  574. if (rq.equals(1)) {
  575. sreturn = sreturn + s_rq;
  576. if (format.equals(1))
  577. sreturn = sreturn + “日”;
  578. }
  579. } else {
  580. // 不是空值,也是一个合法的日期值,则先将其转换为标准的时间格式
  581. sdate = roc.util.RocDate.getOKDate(sdate);
  582. s_nd = sdate.substring(0, 4); // 年份
  583. s_yf = sdate.substring(5, 7); // 月份
  584. s_rq = sdate.substring(8, 10); // 日期
  585. if (nd.equals(1)) {
  586. sreturn = s_nd;
  587. // 处理间隔符
  588. if (format.equals(1))
  589. sreturn = sreturn + “年”;
  590. else if (format.equals(2))
  591. sreturn = sreturn +-;
  592. else if (format.equals(3))
  593. sreturn = sreturn +/;
  594. else if (format.equals(5))
  595. sreturn = sreturn + “.”;
  596. }
  597. // 处理月份
  598. if (yf.equals(1)) {
  599. sreturn = sreturn + s_yf;
  600. if (format.equals(1))
  601. sreturn = sreturn + “月”;
  602. else if (format.equals(2))
  603. sreturn = sreturn +-;
  604. else if (format.equals(3))
  605. sreturn = sreturn +/;
  606. else if (format.equals(5))
  607. sreturn = sreturn + “.”;
  608. }
  609. // 处理日期
  610. if (rq.equals(1)) {
  611. sreturn = sreturn + s_rq;
  612. if (format.equals(1))
  613. sreturn = sreturn + “日”;
  614. }
  615. }
  616. return sreturn;
  617. }
  618.  
  619.  public static String getNextMonthDay(String sdate, int m) {
  620. sdate = getOKDate(sdate);
  621. int year = Integer.parseInt(sdate.substring(0, 4));
  622. int month = Integer.parseInt(sdate.substring(5, 7));
  623. month = month + m;
  624. if (month < 0) {
  625. month = month + 12;
  626. year = year – 1;
  627. } else if (month > 12) {
  628. month = month – 12;
  629. year = year + 1;
  630. }
  631. String smonth = “”;
  632. if (month < 10)
  633. smonth =0+ month;
  634. else
  635. smonth = “” + month;
  636. return year +-+ smonth +-10;
  637. }
  638.  
  639.  public static String getOKDate(String sdate) {
  640. if (sdate == null || sdate.equals(“”))
  641. return getStringDateShort();
  642.  
  643.   if (!VeStr.Isdate(sdate)) {
  644. sdate = getStringDateShort();
  645. }
  646. // 将“/”转换为“-”
  647. sdate = VeStr.Replace(sdate, “/”, “-);
  648. // 如果只有8位长度,则要进行转换
  649. if (sdate.length() == 8)
  650. sdate = sdate.substring(0, 4) +-+ sdate.substring(4, 6) +-+ sdate.substring(6, 8);
  651. SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);
  652. Date strtodate = formatter.parse(sdate, pos);
  653. String dateString = formatter.format(strtodate);
  654. return dateString;
  655. }
  656.  
  657.  public static void main(String[] args) throws Exception {
  658. try {
  659. //System.out.print(Integer.valueOf(getTwoDay(“2006-11-03 12:22:10″, “2006-11-02 11:22:09″)));
  660. } catch (Exception e) {
  661. throw new Exception();
  662. }
  663. //System.out.println(“sss”);
  664. }
  665. }
  666.  
  667. //源代码片段来自云代码http://yuncode.net
  668.                        

回复 " Java日期时间操作类"

这儿你可以回复上面这条便签

captcha