• 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")+"	");
    	        	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")+"	");
    	        	if(i%3==2)
    	        		System.out.println();
    			}
    	 }        
    }
    
  • 相关阅读:
    Quartz.Net 学习随手记之04 构建Windows Service承载服务
    Quartz.Net 学习随手记之03 配置文件
    SQL Server问题之计算机名称更改后无法登陆本地数据库
    SQL Server问题之The remote procedure call failed. [0x800706be]
    跨框架菜单menuG5使用
    DLink 524M经常断线、掉线问题的解决
    MSChart使用导航之开发
    ReSharper制作Template帮助我们快速输入代码
    网站右下角弹出通知效果的制作
    Dell6400拆卸与维护
  • 原文地址:https://www.cnblogs.com/jeddzd/p/11651777.html
Copyright © 2020-2023  润新知