「java拆分date」java拆分数组
本篇文章给大家谈谈java拆分date,以及java拆分数组对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java给定两个日期,求两个日期之间的日期段,以月为分隔~!
- 2、java语言中的date类及方法的用法
- 3、java 中的date怎么用
- 4、Java中date的用法
- 5、java怎么分开获取系统年月日
- 6、任意一个起止时间段(如:20160101-20161009),用java将这个时间段拆分成一个个按自然周组成的时间段
java给定两个日期,求两个日期之间的日期段,以月为分隔~!
用java的日历类
public static void main(String[] args) throws ParseException {
String d1= "2011-05-12";
String d2="2011-08-15";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = format.parse(d1);
Date date2 = format.parse(d2);
Calendar cal =Calendar.getInstance();
cal.setTime(date1);
int day = cal.get(Calendar.DAY_OF_MONTH);
while(cal.getTime().before(date2)){
String begin = format.format(cal.getTime());
int max = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, max);
String end = cal.getTime().before(date2) ? format.format(cal.getTime()) : d2;
System.out.println(begin+"~"+end);
cal.add(Calendar.MONTH, 1);
cal.set(Calendar.DAY_OF_MONTH, day);
}
}
java语言中的date类及方法的用法
Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着很重要的地位,所以在这里想对这两个类进行一个基本的讲解,由于技术有限,不到之处请指正。
Date类顾名思义,一看就知道是和日期有关的类了,这个类最主要的作用就是获得当前时间了,然而这个类里面也具有设置时间以及一些其他的功能,可是由于本身设计的问题,这些方法却遭到众多批评,而这些遭受批评的功能都已移植到另外一个类里面,这就是今天要讲到的第二个类Calendar里面。
在讲两个类之前,这里又不能不多提一个类,那就是DateFormat类,这个类是用来格式化日期的,稍后也会讲到。
首先,让我们来看一个获取当前时间的例子:
Date date = new Date();
System.out.println(date.getTime());上面的语句首先创建了Date的一个对象,接着使用getTime方法获得当前的时间,但是注意了,输出后的结果确实一串长整型的数字,这是为什么?实际上这是系统根据当前时间计算出来的一个long型的数,至于是如何计算出来的就不在本文中讲述了,那既然这样的话又如何显示正确的时间呢?这就要利用到上面的DateFormat类了,这个类是一个基类,它有一个子类是SimpleDateFormat,具体用法请看下面的代码:
Date date = new Date();
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
System.out.println(dateFm.format(date));这段代码开始创建了一个Date的对象,用来获取当前时间,而重点就在于后面的SimpleDateFormat对象,这个对继承了DateFormat,利用format方法对Date对象进行格式化,然后输出,而格式的定制是由用户定制的,EEEE代表星期,MMMM代表月份,而dd代表日,yyyy代表年。使用这个方法就可以根据用户自定义的格式进行输出时间。
上面介绍了由用户自定义格式的输出时间,下面将来介绍通过JAVA类库提供的标准格式输出时间,这就要用到DateFormat类了,请看以下代码:
Date date = new Date();
DateFormat dateFm = DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT);
System.out.println(dateFm.format(date));这里使用的方法和用户自定义的方法差不多,只是这里使用的是一个抽象类,由于DateFormat是一个抽象类,所以它不能通过构造函数构造对象,在这里是通过getDateTimeInstance()方法获得该对象,而所传递的参数就是DateFormat里面定义的一些常量,系统根据这些常量输出当前时间,由于这里使用的是getDateTimeInstance方法,所以将传递两个常量参数,用来分别格式化日期和当前的时间。
上面讲述了如何获得系统时间以及如何格式化输出,那如果想获取或者设置时间当中的某一部分又该如何呢?例如年,月,日。这就要靠Calendar这个类了,这个类也是一个抽象类,它有一个子类GregorianCalendar,接下来我会利用这个子类来演示这个过程,请看以下代码:
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(new Date());
System.out.println("System Date: " + dateFormat.format(cal.getTime()));
cal.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.FRIDAY);
System.out.println("After Setting Day of Week to Friday: " +
dateFormat.format(cal.getTime()));
这段代码当中,首先创建了一个DateFormat对象进行格式设置,接着创建了一个GregorianCalendar对象cal,接着使用cal.setTime()方法设置cal对象中的时间为当前时间,然后通过format格式化由cal.getTime()返回的时间进行输出,后面利用set方法设置cal的日期为当前星期的FRIDAY,此时cal中存储的时间就是这个星期五的该时刻,而后面利用format格式化输出,假如当前时间为2005年1月27日星期4的11点30分,那么最后将那句将会输出2005年1月28日星期5的11点30分。
java 中的date怎么用
1、代码:System.out.println(new java.util.Date());
输出:Thu Jan 27 14:43:28 CST 2011
2、代码:System.out.println(new java.util.Date().toLocaleString());
输出:2011-1-27 14:45:21
不过现在toLocaleString()方法已过时,由DateFormat.format(Date date)取代。
3、代码:
DateFormat ddf = DateFormat.getDateInstance();
DateFormat dtf = DateFormat.getTimeInstance();
DateFormat ddtf = DateFormat.getDateTimeInstance();
Date date = new Date();
System.out.println("日期:" + ddf.format(date));
System.out.println("时间:" + dtf.format(date));
System.out.println("日期时间:" + ddtf.format(date));
SimpleDateFormat sdf = (SimpleDateFormat) DateFormat.getDateTimeInstance();
System.out.println("日期时间:" + sdf.format(date));
输出:
日期:2011-2-9
时间:11:16:02
日期时间:2011-2-9 11:16:02
日期时间:2011-2-9 11:16:02
以上是在window系统下,linux系统下不能这么处理,linux系统下用以上获取回来的初始时间格式与此不同。
Java中date的用法
Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年. 这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中进一步讨论它.
这种改进旨在更好的处理日期数据的国际化格式. 就象在JDK 1.1中一样, Date 类实际上只是一个包裹类, 它包含的是一个长整型数据, 表示的是从GMT(格林尼治标准时间)1970年, 1 月 1日00:00:00这一刻之前或者是之后经历的毫秒数.
创建一个日期对象
让我们看一个使用系统的当前日期和时间创建一个日期对象并返回一个长整数的简单例子. 这个时间通常被称为Java 虚拟机(JVM)主机环境的系统时间.
import java.util.Date;
public class DateExample1 {
public static void main(String[] args) {
// Get the system date/time
Date date = new Date();
System.out.println(date.getTime());
}
java怎么分开获取系统年月日
java 现在用Date类来获取年月日的方法都已经过时不推荐使用了。
比较好的就是用Calendar类。这个类的构造函数好像不能访问,应该用getXXX的类方法得到实例。默认就是系统时间,可以setDate来改变实例对应的时间。
然后cal.get(Calendar.YEAR) 就可以得到年了。
任意一个起止时间段(如:20160101-20161009),用java将这个时间段拆分成一个个按自然周组成的时间段
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Week {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdw = new SimpleDateFormat("E");
System.out.println("请输入时间段,格式如:20160101-20161111(不足10位以0补足)");
Scanner s = new Scanner(System.in);
String date = s.next();
String begin_date = date.split("-")[0];
String end_date = date.split("-")[1];
String begin_date_fm = begin_date.substring(0, 4) + "-" + begin_date.substring(5,6) + "-" + begin_date.substring(7,8);
String end_date_fm = end_date.substring(0, 4) + "-" + end_date.substring(5,6) + "-" + end_date.substring(7,8);
Date b = null;
Date e = null;
try {
b = sd.parse(begin_date_fm);
e = sd.parse(end_date_fm);
} catch (ParseException ee) {
ee.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(b);
Date time = b;
String year = begin_date_fm.split("-")[0];
String mon = Integer.parseInt(begin_date_fm.split("-")[1])10?"0"+begin_date_fm.split("-")[1]:begin_date_fm.split("-")[1];
String day = Integer.parseInt(begin_date_fm.split("-")[2])10?"0"+begin_date_fm.split("-")[2]:begin_date_fm.split("-")[2];
String timeb = year+mon+day;
String timee = null;
while(time.getTime()=e.getTime()){
rightNow.add(Calendar.DAY_OF_YEAR,1);
time = sd.parse(sd.format(rightNow.getTime()));
String timew = sdw.format(time);
if(("星期一").equals(timew)){
timeb = (sd.format(time)).replaceAll("-", "");
}
if(("星期日").equals(timew) || ("星期七").equals(timew) || time.getTime() == e.getTime()){
timee = (sd.format(time)).replaceAll("-", "");
System.out.println(timeb+"-"+timee);
}
}
}
}
关于java拆分date和java拆分数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-05,除非注明,否则均为
原创文章,转载请注明出处。