Java中日期与字符串的处理

来源:文书网 1.33W

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,下面为大家介绍一下Java中日期与字符串的处理,一起来看看!

Java中日期与字符串的处理

  日期相关的API

类,是一个日期类,含年、月、日、时、分、秒信息。

  构造方法:

public Date(); 空参构造,得到当前系统时间的日期。

public Date(long date); //根据指定的毫秒数来构造一个日期。

ndar 类,是一个日历类。它包含 日期的所有信息.

方法:

public static Calendar getInstance();

public int get(int field);

public void set(int field, int value);

public void setTime(Date date);

public Date getTime();

还有大量的常量,这些常量就是 field的值.

YEAR,MONTH, DATE,DAY_OF_MONTH, DAY_OF_WEEK. ....

leDateFormat类,日期格式器类[上一讲提到过]

  构造方法:

public SimpleDateFormat(String pattern).

注:pattern是指格式化日期的字符串。

yyyy 代全4位数字年份

MM 代表2位数字月份

dd 代表2位数字月日

...

有关pattern的细节,可以查看API文档。

如,我们可以构造一个SimpleDateFormate对象.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

  常用方法:

public String format(Date date); //格式化日期.

public Date parse(String dateStr); //把字符串转成日期

在JAVA中,时间就指至1970年1月1日午夜至现在所经过的毫秒数.它是一个长整型的`数。

  如何获取这个长整型?

long t = entTimeMillils();

针对日期的操作,可以封装一个工具类,用来创建日期、格式化日期或是解析日期字符串等。

如:

public class DateUtil{

public static Date create(int y,int m, int d){

return create(y,m,d,0,0,0);

}

public static Date create(int y,int m, int d, int h, int minute,int second){

//创建日历对象

Calendar c = nstance();

//绑定全新日期与时间

(,y);

...

(ND, second);

//返回一个日期

return ime();

}

public static String format(Date d){

final String pattern = "yyyy-MM-dd";

return format(d,pattern);

}

public static String format(Date d, String pattern){

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

return at(d);

}

...

}

  String类的特点:

a).它是不可变的,一旦创建好,就不可再变。

b).底层就是字符数组.

c).由于字符串是编程中操作最频繁的数据,所以,JVM针对字符串做了优化处理。提供了 “串池”,如下: ["串池" 也是堆空间。]

  创建字符串的2种方式:

方式一: 采用“串池”存放.

String str = "Jack";

String str2 = "Jack";

因为创建第一个str时,由于串池中没有"Jack"这个字符串,所以,在串池中创建了Jack,而当第二个对象str2创建时,此时,串池是已经有了Jack,所以,直接返回Jack的地址给str2.这样的话,串池中只有1个Jack. 大大降低资源的占有率,从而提高效率。

所以:

tln(str == str2); //此时会输出 true

方式二:

String str = new String("Jack");

String str2 = new String("Jack");

以上方式采用new操作符,会在堆空间中申请2块空间,来分别存放Jack 数据。所以:

tln(str == str2); //此时会输出 false

所以,建议创建字符串对象时,都采用方式一(串池的方式)

String str = "Hello";

str = str + "World"; //会产生临时对象,占用更多的空间(资源)

为了改进字符串拼接效率较低的情况,API中提供了StringBuilder 和 StringBuffer 两个来做字符串的拼接操作。它们的效是非常高的。

ngBuilder

构造方法:

public StringBuilder();

public StringBuilder(String str);

其它方法:

public StringBuilder append(String str);

public String toString();

StringBuilder与StringBuffer的区别:

StringBuffer是多线程安全的,是重量级的。

StringBuilder不是线程安全的,是轻量级的。

所以,在非多线程环境下,使用StringBuilder。

  字符串类型相关类与接口:

接口:Sequence

方法:

charAt(int index);

int length();

String toString();

实现类:

ng

ngBuilder

ngBuffer

  String相关操作方法:

  查询字符序列的方法:

indexOf(String str);

indexOf(String str, int fromIndex);

lastIndexOf(String str);

lastIndexOf(String str, int fromIndex);

startsWith(String str);

endsWith(String str);

contains(String str);

  求子串的方法:

subString(int start, int end); 含start,不含end

subString(int start); //从start至结尾

  其它方法

concat(String str);

trim(); //去掉前后的空白字符

isEmpty(); 当length()方法0时,为true

replace(String oldStr,String newStr);

replace(char oldChar, char newChar);

split(String pattern); //把字符串按给定的字符切割。

getBytes(); //把字符串 编码 成字节数组

toCharArray(); //把字符串转换成新的字符数组

热门标签