java时间操作大全

  1. import java.util.Date;   
  2. import java.util.Calendar;  
  3. import java.text.SimpleDateFormat;  
  4. public class TestDate{   
  5. public static void main(String[] args){   
  6. Date now = new Date();   
  7. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式  
  8.   
  9. String hehe = dateFormat.format( now );   
  10. System.out.println(hehe);  
  11. Calendar c = Calendar.getInstance();//可以对每个时间域单独修改  
  12.    
  13.   
  14. int year = c.get(Calendar.YEAR);   
  15. int month = c.get(Calendar.MONTH);   
  16. int date = c.get(Calendar.DATE);   
  17. int hour = c.get(Calendar.HOUR_OF_DAY);   
  18. int minute = c.get(Calendar.MINUTE);   
  19. int second = c.get(Calendar.SECOND);   
  20. System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);   
  21. }   
  22. }  
  23.  有时候要把String类型的时间转换为Date类型,通过以下的方式,就可以将你刚得到的时间字符串转换为Date类型了。  
  24. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  25. java.util.Date time=null;  
  26. try {  
  27.    time= sdf.parse(sdf.format(new Date()));  
  28. catch (ParseException e) {  
  29.    e.printStackTrace();  
  30. }  
  31. 一个不错日期时间类  
  32.  代码如下   复制代码  
  33. package com.wondersgroup.cc.cti;  
  34.   
  35. import java.sql.Timestamp;  
  36. import java.util.Calendar;  
  37. import java.util.Date;  
  38.   
  39. public class TestGetSystemTime {  
  40.   
  41.  static Date nowTime = null;  
  42.   
  43.  /** 
  44.  * @param args 
  45.  */  
  46.  public static void main(String[] args) {  
  47.   
  48.   // 以下为 Clendar 测试代码  
  49.   int yyyy, mm, dd;  
  50.   Calendar c = Calendar.getInstance();  
  51.   yyyy = c.get(Calendar.YEAR);  
  52.   mm = c.get(Calendar.MONTH) + 1;  
  53.   dd = c.get(Calendar.DAY_OF_MONTH);  
  54.   System.out.println("year = "+yyyy);  
  55.   System.out.println("month = "+mm);  
  56.   System.out.println("day = "+dd);  
  57.     
  58.   // 1. System.currentTimeMillis() 获取系统时间的代码  
  59.   Timestamp ts = new Timestamp(System.currentTimeMillis());  
  60.   String dateStr1 = ts.toString();  
  61.   System.out.println("System.currentTimeMillis() = "+dateStr1);  
  62.     
  63.   // 2. date 为获得系统时间的另外一种方法  
  64.   Date date = new Date();  
  65.   String dateStr2 = new Timestamp(date.getTime()).toString();  
  66.   System.out.println(dateStr2);  
  67.     
  68.   // 得到JAVA运行环境的一些基本属性  
  69.   System.getProperties().list(System.out);  
  70.  }  
  71.   
  72. }  
  73. 一个完整的获取日期实例  
  74.   
  75. 格式化日期 String-->Date  或者 Data-->String  
  76. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");     
  77. Date  date = sdf.parse("2009-11-04");//String-->Date     
  78. String  sdate  = sdf.format(date );// Data-->String ===============================================================  
  79. package com.hefeng.test;  
  80. import java.text.DateFormat;  
  81. import java.text.ParsePosition;  
  82. import java.text.SimpleDateFormat;  
  83. import java.util.Calendar;  
  84. import java.util.Date;  
  85. import java.util.GregorianCalendar;  
  86. public class TimeTest {  
  87. //用来全局控制 上一周,本周,下一周的周数变化  
  88. private int weeks = 0;  
  89. private int MaxDate;//一月最大天数  
  90. private int MaxYear;//一年最大天数  
  91. /** 
  92. * @param args 
  93. */  
  94. public static void main(String[] args) {  
  95. TimeTest tt = new TimeTest();  
  96. System.out.println("得到6个月后的日期:"+tt .getAfterMonth(6);  
  97. System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));  
  98. System.out.println("获取本周一日期:"+tt.getMondayOFWeek());  
  99. System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday());  
  100. System.out.println("获取上周一日期:"+tt.getPreviousWeekday());  
  101. System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());  
  102. System.out.println("获取下周一日期:"+tt.getNextMonday());  
  103. System.out.println("获取下周日日期:"+tt.getNextSunday());  
  104. System.out.println("获得相应周的周六:"+tt.getNowTime("yyyy-MM-dd"));  
  105. System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());  
  106. System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());  
  107. System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst());  
  108. System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());  
  109. System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());  
  110. System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());  
  111. System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst());  
  112. System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd());  
  113. System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst());  
  114. System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd());  
  115. System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());  
  116. System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());  
  117. System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11));  
  118. System.out.println("获取两个日期之间间隔天数2008-12-1~2008-  
  119. .29:"+TimeTest.getTwoDay("2008-12-1","2008-9-29"));  
  120. }  
  121. /** 
  122. * 得到指定月后(前)的日期 参数传负数即可 
  123. */  
  124. public static String  getAfterMonth(int month) {  
  125.         Calendar c = Calendar.getInstance();//获得一个日历的实例     
  126.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");     
  127.         Date date = null;     
  128.         try{     
  129.             date = sdf.parse("2009-11-04");//初始日期     
  130.         }catch(Exception e){    
  131.         }     
  132.         c.setTime(date);//设置日历时间     
  133.         c.add(Calendar.MONTH,month);//在日历的月份上增加6个月     
  134.         String strDate = sdf.format(c.getTime()));//的到你想要得6个月后的日期     
  135.         return strDate;  
  136.  }  
  137. /** 
  138. * 得到二个日期间的间隔天数 
  139. */  
  140. public static String getTwoDay(String sj1, String sj2) {  
  141. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");  
  142. long day = 0;  
  143. try {  
  144. java.util.Date date = myFormatter.parse(sj1);  
  145. java.util.Date mydate = myFormatter.parse(sj2);  
  146. day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);  
  147. catch (Exception e) {  
  148. return "";  
  149. }  
  150. return day + "";  
  151. }  
  152. /** 
  153. * 根据一个日期,返回是星期几的字符串 
  154. */  
  155. public static String getWeek(String sdate) {  
  156. // 再转换为时间  
  157. Date date = TimeTest.strToDate(sdate);  
  158. Calendar c = Calendar.getInstance();  
  159. c.setTime(date);  
  160. // int hour=c.get(Calendar.DAY_OF_WEEK);  
  161. // hour 中存的就是星期几了,其范围 1~7  
  162. // 1=星期日 7=星期六,其他类推  
  163. return new SimpleDateFormat("EEEE").format(c.getTime());  
  164. }  
  165. /** 
  166. * 将短时间格式字符串转换为时间 yyyy-MM-dd 
  167. */  
  168. public static Date strToDate(String strDate) {  
  169. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  
  170. ParsePosition pos = new ParsePosition(0);  
  171. Date strtodate = formatter.parse(strDate, pos);  
  172. return strtodate;  
  173. }  
  174. /** 
  175. * 两个时间之间的天数 
  176. * 
  177. * @param date1 
  178. * @param date2 
  179. * @return 
  180. */  
  181. public static long getDays(String date1, String date2) {  
  182. if (date1 == null || date1.equals(""))  
  183. return 0;  
  184. if (date2 == null || date2.equals(""))  
  185. return 0;  
  186. // 转换为标准时间  
  187. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");  
  188. java.util.Date date = null;  
  189. java.util.Date mydate = null;  
  190. try {  
  191. date = myFormatter.parse(date1);  
  192. mydate = myFormatter.parse(date2);  
  193. catch (Exception e) {  
  194. }  
  195. long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);  
  196. return day;  
  197. }  
  198. // 计算当月最后一天,返回字符串  
  199. public String getDefaultDay(){  
  200. String str = "";  
  201. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  202. Calendar lastDate = Calendar.getInstance();  
  203. lastDate.set(Calendar.DATE,1);//设为当前月的1 号  
  204. lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1 号  
  205. lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天  
  206. str=sdf.format(lastDate.getTime());  
  207. return str;  
  208. }  
  209. // 上月第一天  
  210. public String getPreviousMonthFirst(){  
  211. String str = "";  
  212. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  213. Calendar lastDate = Calendar.getInstance();  
  214. lastDate.set(Calendar.DATE,1);//设为当前月的1 号  
  215. lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1 号  
  216. //lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天  
  217. str=sdf.format(lastDate.getTime());  
  218. return str;  
  219. }  
  220. //获取当月第一天  
  221. public String getFirstDayOfMonth(){  
  222. String str = "";  
  223. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  224. Calendar lastDate = Calendar.getInstance();  
  225. lastDate.set(Calendar.DATE,1);//设为当前月的1 号  
  226. str=sdf.format(lastDate.getTime());  
  227. return str;  
  228. }  
  229. // 获得本周星期日的日期  
  230. public String getCurrentWeekday() {  
  231. weeks = 0;  
  232. int mondayPlus = this.getMondayPlus();  
  233. GregorianCalendar currentDate = new GregorianCalendar();  
  234. currentDate.add(GregorianCalendar.DATE, mondayPlus+6);  
  235. Date monday = currentDate.getTime();  
  236. DateFormat df = DateFormat.getDateInstance();  
  237. String preMonday = df.format(monday);  
  238. return preMonday;  
  239. }  
  240. //获取当天时间  
  241. public String getNowTime(String dateformat){  
  242. Date now = new Date();  
  243. SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可  
  244. 以方便  
  245. 地修改日期格式  
  246. String hehe = dateFormat.format(now);  
  247. return hehe;  
  248. }  
  249. // 获得当前日期与本周日相差的天数  
  250. private int getMondayPlus() {  
  251. Calendar cd = Calendar.getInstance();  
  252. // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......  
  253. int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1//因为按中国礼拜一  
  254. 作为第一  
  255. 天所以这里减1  
  256. if (dayOfWeek == 1) {  
  257. return 0;  
  258. else {  
  259. return 1 - dayOfWeek;  
  260. }  
  261. }  
  262. //获得本周一的日期  
  263. public String getMondayOFWeek(){  
  264. weeks = 0;  
  265. int mondayPlus = this.getMondayPlus();  
  266. GregorianCalendar currentDate = new GregorianCalendar();  
  267. currentDate.add(GregorianCalendar.DATE, mondayPlus);  
  268. Date monday = currentDate.getTime();  
  269. DateFormat df = DateFormat.getDateInstance();  
  270. String preMonday = df.format(monday);  
  271. return preMonday;  
  272. }  
  273. //获得相应周的周六的日期  
  274. public String getSaturday() {  
  275. int mondayPlus = this.getMondayPlus();  
  276. GregorianCalendar currentDate = new GregorianCalendar();  
  277. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);  
  278. Date monday = currentDate.getTime();  
  279. DateFormat df = DateFormat.getDateInstance();  
  280. String preMonday = df.format(monday);  
  281. return preMonday;  
  282. }  
  283. // 获得上周星期日的日期  
  284. public String getPreviousWeekSunday() {  
  285. weeks=0;  
  286. weeks--;  
  287. int mondayPlus = this.getMondayPlus();  
  288. GregorianCalendar currentDate = new GregorianCalendar();  
  289. currentDate.add(GregorianCalendar.DATE, mondayPlus+weeks);  
  290. Date monday = currentDate.getTime();  
  291. DateFormat df = DateFormat.getDateInstance();  
  292. String preMonday = df.format(monday);  
  293. return preMonday;  
  294. }  
  295. // 获得上周星期一的日期  
  296. public String getPreviousWeekday() {  
  297. weeks--;  
  298. int mondayPlus = this.getMondayPlus();  
  299. GregorianCalendar currentDate = new GregorianCalendar();  
  300. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);  
  301. Date monday = currentDate.getTime();  
  302. DateFormat df = DateFormat.getDateInstance();  
  303. String preMonday = df.format(monday);  
  304. return preMonday;  
  305. }  
  306. // 获得下周星期一的日期  
  307. public String getNextMonday() {  
  308. weeks++;  
  309. int mondayPlus = this.getMondayPlus();  
  310. GregorianCalendar currentDate = new GregorianCalendar();  
  311. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);  
  312. Date monday = currentDate.getTime();  
  313. DateFormat df = DateFormat.getDateInstance();  
  314. String preMonday = df.format(monday);  
  315. return preMonday;  
  316. }  
  317. // 获得下周星期日的日期  
  318. public String getNextSunday() {  
  319. int mondayPlus = this.getMondayPlus();  
  320. GregorianCalendar currentDate = new GregorianCalendar();  
  321. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7+6);  
  322. Date monday = currentDate.getTime();  
  323. DateFormat df = DateFormat.getDateInstance();  
  324. String preMonday = df.format(monday);  
  325. return preMonday;  
  326. }  
  327. private int getMonthPlus(){  
  328. Calendar cd = Calendar.getInstance();  
  329. int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);  
  330. cd.set(Calendar.DATE, 1);//把日期设置为当月第一天  
  331. cd.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天  
  332. MaxDate=cd.get(Calendar.DATE);  
  333. if(monthOfNumber == 1){  
  334. return -MaxDate;  
  335. }else{  
  336. return 1-monthOfNumber;  
  337. }  
  338. }  
  339. //获得上月最后一天的日期  
  340. public String getPreviousMonthEnd(){  
  341. String str = "";  
  342. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  343. Calendar lastDate = Calendar.getInstance();  
  344. lastDate.add(Calendar.MONTH,-1);//减一个月  
  345. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天  
  346. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天  
  347. str=sdf.format(lastDate.getTime());  
  348. return str;  
  349. }  
  350. //获得下个月第一天的日期  
  351. public String getNextMonthFirst(){  
  352. String str = "";  
  353. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  354. Calendar lastDate = Calendar.getInstance();  
  355. lastDate.add(Calendar.MONTH,1);//减一个月  
  356. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天  
  357. str=sdf.format(lastDate.getTime());  
  358. return str;  
  359. }  
  360. //获得下个月最后一天的日期  
  361. public String getNextMonthEnd(){  
  362. String str = "";  
  363. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  364. Calendar lastDate = Calendar.getInstance();  
  365. lastDate.add(Calendar.MONTH,1);//加一个月  
  366. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天  
  367. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天  
  368. str=sdf.format(lastDate.getTime());  
  369. return str;  
  370. }  
  371. //获得明年最后一天的日期  
  372. public String getNextYearEnd(){  
  373. String str = "";  
  374. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  375. Calendar lastDate = Calendar.getInstance();  
  376. lastDate.add(Calendar.YEAR,1);//加一个年  
  377. lastDate.set(Calendar.DAY_OF_YEAR, 1);  
  378. lastDate.roll(Calendar.DAY_OF_YEAR, -1);  
  379. str=sdf.format(lastDate.getTime());  
  380. return str;  
  381. }  
  382. //获得明年第一天的日期  
  383. public String getNextYearFirst(){  
  384. String str = "";  
  385. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
  386. Calendar lastDate = Calendar.getInstance();  
  387. lastDate.add(Calendar.YEAR,1);//加一个年  
  388. lastDate.set(Calendar.DAY_OF_YEAR, 1);  
  389. str=sdf.format(lastDate.getTime());  
  390. return str;  
  391. }  
  392. //获得本年有多少天  
  393. private int getMaxYear(){  
  394. Calendar cd = Calendar.getInstance();  
  395. cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天  
  396. cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。  
  397. int MaxYear = cd.get(Calendar.DAY_OF_YEAR);  
  398. return MaxYear;  
  399. }  
  400. private int getYearPlus(){  
  401. Calendar cd = Calendar.getInstance();  
  402. int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);//获得当天是一年中的第几天  
  403. cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天  
  404. cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。  
  405. int MaxYear = cd.get(Calendar.DAY_OF_YEAR);  
  406. if(yearOfNumber == 1){  
  407. return -MaxYear;  
  408. }else{  
  409. return 1-yearOfNumber;  
  410. }  
  411. }  
  412. //获得本年第一天的日期  
  413. public String getCurrentYearFirst(){  
  414. int yearPlus = this.getYearPlus();  
  415. GregorianCalendar currentDate = new GregorianCalendar();  
  416. currentDate.add(GregorianCalendar.DATE,yearPlus);  
  417. Date yearDay = currentDate.getTime();  
  418. DateFormat df = DateFormat.getDateInstance();  
  419. String preYearDay = df.format(yearDay);  
  420. return preYearDay;  
  421. }  
  422. //获得本年最后一天的日期 *  
  423. public String getCurrentYearEnd(){  
  424. Date date = new Date();  
  425. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方  
  426. 便地修  
  427. 改日期格式  
  428. String years = dateFormat.format(date);  
  429. return years+"-12-31";  
  430. }  
  431. //获得上年第一天的日期 *  
  432. public String getPreviousYearFirst(){  
  433. Date date = new Date();  
  434. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方  
  435. 便地修  
  436. 改日期格式  
  437. String years = dateFormat.format(date); int years_value = Integer.parseInt  
  438. (years);  
  439. years_value--;  
  440. return years_value+"-1-1";  
  441. }  
  442. //获得上年最后一天的日期  
  443. public String getPreviousYearEnd(){  
  444. weeks--;  
  445. int yearPlus = this.getYearPlus();  
  446. GregorianCalendar currentDate = new GregorianCalendar();  
  447. currentDate.add(GregorianCalendar.DATE,yearPlus+MaxYear*weeks+(MaxYear-1));  
  448. Date yearDay = currentDate.getTime();  
  449. DateFormat df = DateFormat.getDateInstance();  
  450. String preYearDay = df.format(yearDay);  
  451. getThisSeasonTime(11);  
  452. return preYearDay;  
  453. }  
  454. //获得本季度  
  455. public String getThisSeasonTime(int month){  
  456. int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};  
  457. int season = 1;  
  458. if(month>=1&&month<=3){  
  459. season = 1;  
  460. }  
  461. if(month>=4&&month<=6){  
  462. season = 2;  
  463. }  
  464. if(month>=7&&month<=9){  
  465. season = 3;  
  466. }  
  467. if(month>=10&&month<=12){  
  468. season = 4;  
  469. }  
  470. int start_month = array[season-1][0];  
  471. int end_month = array[season-1][2];  
  472. Date date = new Date();  
  473. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方  
  474. 便地修  
  475. 改日期格式  
  476. String years = dateFormat.format(date);  
  477. int years_value = Integer.parseInt(years);  
  478. int start_days =1;//years+"-"+String.valueOf(start_month)+"-  
  479. ";//getLastDayOfMonth(years_value,start_month);  
  480. int end_days = getLastDayOfMonth(years_value,end_month);  
  481. String seasonDate =  
  482. years_value+"-"+start_month+"-"+start_days+";"+years_value+"-"+end_month+"-"+end_days;  
  483. return seasonDate;  
  484. }  
  485. /** 
  486. * 获取某年某月的最后一天 
  487. * @param year 年 
  488. * @param month 月 
  489. * @return 最后一天 
  490. */  
  491. private int getLastDayOfMonth(int year, int month) {  
  492. if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8  
  493. || month == 10 || month == 12) {  
  494. return 31;  
  495. }  
  496. if (month == 4 || month == 6 || month == 9 || month == 11) {  
  497. return 30;  
  498. }  
  499. if (month == 2) {  
  500. if (isLeapYear(year)) {  
  501. return 29;  
  502. else {  
  503. return 28;  
  504. }  
  505. }  
  506. return 0;  
  507. }  
  508. /** 
  509. * 是否闰年 
  510. * @param year 年 
  511. * @return 
  512. */  
  513. public boolean isLeapYear(int year) {  
  514. return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);  
  515. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值