Java自学-日期 日期格式化
Java中使用SimpleDateFormat 进行日期格式化类
SimpleDateFormat 日期格式化类
示例 1 : 日期转字符串
y 代表年
M 代表月
d 代表日
H 代表24进制的小时
h 代表12进制的小时
m 代表分钟
s 代表秒
S 代表毫秒

package date;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
    public static void main(String[] args) {
        //y 代表年
        //M 代表月
        //d 代表日
        //H 代表24进制的小时
        //h 代表12进制的小时
        //m 代表分钟
        //s 代表秒
        //S 代表毫秒
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
        Date d= new Date();
        String str = sdf.format(d);
        System.out.println("当前时间通过 yyyy-MM-dd HH:mm:ss SSS 格式化后的输出: "+str);
        SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
        Date d1= new Date();
        String str1 = sdf1.format(d1);
        System.out.println("当前时间通过 yyyy-MM-dd 格式化后的输出: "+str1);
    }
}
示例 2 : 字符串转日期
模式(yyyy/MM/dd HH:mm:ss)需要和字符串格式保持一致,如果不一样就会抛出解析异常ParseException

package date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
    public static void main(String[] args) {
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
        String str = "2016/1/5 12:12:12";
        try {
            Date d = sdf.parse(str);
            System.out.printf("字符串 %s 通过格式  yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
练习: 日期格式化
准备一个长度是9的日期数组
使用1900年-2000年之间的随机日期初始化该数组
按照这些日期的时间进行升序排序
比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大

答案:
package date;
import java.util.Date;
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateSort{
	 //随机日期产生方法
	 public static Date getRandomDate(int start,int end){
		    SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
		    long timeStart=0;
		    long timeEnd=0;
		    try {
				Date dateStart = sdf.parse(String.valueOf(start));
				//System.out.println(dateStart);
				Date dateEnd = sdf.parse(String.valueOf(end));
				timeEnd = dateEnd.getTime()-1;
				timeStart = dateStart.getTime();
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		    long randomTime = (long)(timeStart+(Math.random()*(timeEnd-timeStart)));
		    //System.out.println(randomTime);
		    return new Date(randomTime);
	 }
	 //格式化输出日期字符串方法
	 public static String toString(Date d,String format){
		 SimpleDateFormat sdf = new SimpleDateFormat(format);
		 return sdf.format(d);
	 }
	 public static void main(String[] args) {
	        Date[] ds = new Date[9];  //创建随机日期数组
//	        Scanner s = new Scanner(System.in);
//	        System.out.println("请输入开始年份:");
//	        int startYear = s.nextInt();
//	        System.out.println("请输入结束年份:");
//	        int endYear = s.nextInt();
	        for (int i = 0; i < ds.length; i++) {     //初始化数组
				ds[i] = getRandomDate(1900,2000);
	        }
	        System.out.println("排序前的随机日期数组:");
	        for (int i = 0; i < ds.length; i++) {
	        	System.out.print(toString(ds[i],"yyyy-MM-dd HH:mm:ss")+"\t");
	        	if(i%3==2)
	        		System.out.println();
			}	               
	        for (int i = 0; i < ds.length; i++) {
				for (int j = 0; j < ds.length-1-i; j++) {
					String str1 = DateSort.toString(ds[j],"HHmmss");
					String str2 = toString(ds[j+1],"HHmmss");
					int j1 = Integer.parseInt(str1);
					int j2 = Integer.parseInt(str2);
					if (j1>j2) {
						Date temp = ds[j];
						ds[j]=ds[j+1];
						ds[j+1]=temp;						         
					}
				}
			}
	        System.out.println("排序后得到的日期数组:");
	        for (int i = 0; i < ds.length; i++) {
	        	System.out.print(toString(ds[i],"yyyy-MM-dd HH:mm:ss")+"\t");
	        	if(i%3==2)
	        		System.out.println();
			}
	 }
}
Java自学-日期 日期格式化的更多相关文章
- Java魔法堂:Date与日期时间格式化
		一.前言 日期时间的获取.显 ... 
- Java 日期时间格式化
		在此记录Java日期时间格式化转换符,方便以后有需要时查找. 1.日期格式化 2.时间格式化 3.格式化常见的日期时间组合 
- java编程--02日期格式化
		第一篇,介绍日期的比较 第二篇,介绍日期的格式化 第三篇,介绍关于日期常用的计算 第四篇,比较几个常用的日期时间相关类的区别 第五篇,jdk9对日期类进行了更新,写一些i自己的学习心得. 日期的格式化 ... 
- java中获取日期和时间的方法总结
		1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下: 要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ... 
- Java Hour 50 日期类型
		Plan List: 1 Java 中的日期类型 2 mysql 相关 3 java code style 鉴于本问题太过普通,所以参考文章满大街都是,因此本文内容基本为转载和验证. java.sql ... 
- net.sf.json日期类型格式化输出
		net.sf.json 日期类型格式化输出 Date, Timestamp ; 编写工具类 package cn.jorcen.commons.util; import java.text.DateF ... 
- Java中的日期操作
		在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ... 
- Java中的日期处理类
		在Java中可以使用Date类和Calendar类来处理日期 但是Date类很多方法都过时了,推荐使用Canlendar类来处理日期,并对日期的格式化做了介绍.下面的部分将会逐一介绍 Date类 Ja ... 
- Java 8 时间日期库的20个使用示例
		java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ... 
- 计算机程序的思维逻辑 (95) - Java 8的日期和时间API
		本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的日期和时间API,主要的类是Date和 ... 
随机推荐
- 跳过__wakeup()魔法函数
			__wakeup():将在序列化之后立即被调用. 漏洞原理:当反序列化字符串中,表示属性个数的值大于其真实值,则跳过__wakeup()执行. 参考题目:xctf-unserialize3 h ... 
- CF308C-Sereja and Brackets-(线段树+括号匹配)
			题意:给出一段括号,多次询问某个区间内能匹配多少括号. 题解:线段树,结构体三个属性,多余的左括号l,多余的右括号r,能够匹配的括号数val. 当前结点的val=左儿子的val+右儿子的val+min ... 
- PHP csv导出数据
			全部导出和时间导出 html代码,全程并不需要引用什么插件 <include file="public@header"/> <link href="__ ... 
- java spring框架的定时任务
			由于测试的原因,最近有接触java spring @Scheduled的定时任务,当时还以为配置起来表达式和crontab是完全一样的,没想到还有些许不一样. 在spring中,一个cron表达式至 ... 
- 用!htrace调试句柄泄漏的一般步骤
			Windbg调试器的!htrace扩展对于调试泄漏处理非常方便.该过程基本上可归结为以下简单步骤: 启用跟踪 拍张快照 情景分析 显示差异 在第四步!htrace将在最后一个快照之后显示所有额外打开的 ... 
- gcd与exgcd
			gcd 辗转相除法求gcd证明 \(gcd(a, b) == gcd(b, a\%b)\) 证明: 设: \(d\)为\(a\)与\(b\)的一个公约数, 则有\(d|b\) \(d|a\) 设: \ ... 
- java web开发入门四(spring)基于intellig idea
			spring 1.spring简介 Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架. 且可以和其他框架一起使用:Spring与Struts, Spring与hibernate (起 ... 
- bat修改文件内容
			#file.vbsSet fso = Wscript.CreateObject("Scripting.FileSystemObject")set f=fso.opentextfil ... 
- 2018的Java
			少用复制黏贴 程序员很多时候都习惯复制黏贴,这里复制一点,那里复制一点,拼拼凑凑的搞出了一段代码.这是一种常态,毕竟没有必要重复造轮子,在开发的时候,讲究的是效率,讲究速度,有时候也是不得不这样做.但 ... 
- DI 依赖注入之unity(mvc)
			DI 依赖注入之unity(使用unity.mvc) 一.nuget下载安装: 使用Nuget安装Unity.MVC 安装完成后会在~/App_Start/目录下自动生成UnityMvcActivat ... 
