哎哎哎,我好懒啊,整天watch variety shows and stay up all night for nothing meaningful,又没有钱去玩~(天气好热,科科~贱人就是矫情,还不想去找工作,自己这么说自己也是够了,双重人格~)—— bulltrue少年
一、Scanner
Scanner可以从特定文件(我们需要提供文件或者文件路径),输入流,字符串等产生对应值(使用正则表达式parse原语类型和字符串)
主要方法:
- hasNext() 假如输入还有别的token返回布尔值
- hasNext(正则表达式) 假如下个完整的token匹配这个正则表达式返回布尔值
- hasNextLine() 可以加入正则表达式
- hasNextInt() 可以加入正则表达式
- hasNextDouble() 可以加入正则表达式
- String next() 返回下一个token
String next(正则表达式)
- int nextInt() 可以加入正则表达式
- double nextDouble() 可以加入正则表达式
- String nextLine() 返回当前行
- close()
- useDelimiter(分隔符)
import java.util.*;
public class testScanner {
public static void main(String[] args) {
String c = "";
Scanner sc1 = new Scanner(System.in);
while(sc1.hasNext()){
c = sc1.next();
if(c.equals("*")){
break;
}
System.out.println(c);
}
sc1.close();
}
}结果:
Amy Mark Anna Terrisa *
Amy
Mark
Anna
Terrisa
- Date (时刻<->Date对象)
获取一个特定的瞬间时刻(精确到毫秒,long类型,从1970.1.1 00.00.00开始)并构造成Date类型对象
Date() //默认使用当前时间
Date(long)
主要方法:
- long getTime() 返回某个时刻
- setTime(long time) 设置Date对象来表示某个时刻
- boolean after(Date)
- boolean before(Date)
System.currentTimeMillis() 获取当前时刻
- DateFormat(抽象类,字符串<->Date对象)
子类SimpleDateFormat
SimpleDateFormat()
SimpleDateFormat(String pattern)
| Date and Time Pattern | Result |
|---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" | 2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" | Wed, Jul 4, '01 |
"h:mm a" | 12:08 PM |
"hh 'o''clock' a, zzzz" | 12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" | 0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" | 02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" | Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" | 010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" | 2001-07-04T12:08:56.235-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" | 2001-07-04T12:08:56.235-07:00 |
"YYYY-'W'ww-u" | 2001-W27-3 |
- String format(Date)
- Date parse(String)
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class testDate {
public static void main(String[] args) {
Date d = new Date();
long ts = d.getTime();
System.out.println(ts+"--"+System.currentTimeMillis());
d.setTime(1345777767889L);
System.out.println(d);
DateFormat df = new SimpleDateFormat("yyyy.MM.dd");
System.out.println(df.format(d));
String date = "2015.8.1"; //要注意格式的统一,比如2015-8-1就不可以啦
try {
System.out.println(df.parse(date));
} catch (ParseException e) {
e.printStackTrace();
}结果:
1437999349348--1437999349348
Fri Aug 24 11:09:27 CST 2012
2012.08.24
Sat Aug 01 00:00:00 CST 2015
- Calendar(抽象类)
执行与日期处理有关的操作,它的子类GregorianCalendar表示的是阳历
主要方法:
- Date getTime() 获取表达日历时间值得日期对象
- setTime(Date)
- long getTimeInMillis() 获取表达日历时间的long值
- setTimeInMillis(long)
- getTimeZone() 获取时区
- add(区域,数值)
- set(区域,数值)
- get(区域)
import java.util.*;
public class testCalendar {
public static void main(String[] args) {
//Calendar c1 = new GregorianCalendar();
Calendar c = Calendar.getInstance(); //用默认的timezone和locale来创建日历
Date date = new Date();
c.setTime(date);
System.out.println(c.get(Calendar.DAY_OF_WEEK)); //一周的第几天
System.out.println(c.get(Calendar.DAY_OF_YEAR)); //一年中的第几天
System.out.println(c.get(Calendar.DAY_OF_MONTH)); //一月中的第一天
System.out.println(c.get(Calendar.DATE)); //日期
System.out.println(c.get(Calendar.HOUR)); //显示目前几点
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.WEEK_OF_MONTH)); //一个月中的第几周
System.out.println(c.get(Calendar.WEEK_OF_YEAR)); //一年中的第几周
}
}
习题:可视化日历
import java.text.*;
import java.util.*;
public class VisualCalendar {
public static void main(String[] args) {
System.out.print("输入日期,格式为YYYY-MM-DD:");
Scanner sn = new Scanner(System.in);
String s = sn.next();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = df.parse(s);
System.out.println(date+"\n");
Calendar c = new GregorianCalendar();
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, 1);
int day_week = c.get(Calendar.DAY_OF_WEEK);
int month = c.getActualMaximum(Calendar.DATE);
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int j = 1; j < day_week; j++) {
System.out.print(" \t");
}
for(int i = 1; i <= month; i++) {
if(day == i)
System.out.print("*");
System.out.print(i+"\t");
if((i+day_week-1)%7 == 0)
System.out.println("\n");
}
} catch (ParseException e) {
System.out.println("格式错误!");
}
}
}
结果:
本文探讨了懒人的日常习惯,如沉迷娱乐节目和通宵达旦,以及如何通过正则表达式、日期处理和日历来提高时间管理能力。文章还提供了关于日期格式转换和日历可视化的实用技巧。
4019

被折叠的 条评论
为什么被折叠?



