• Java获取指定时间(转)


    说明:从LocalDate的API上看,主要用于快速获取当前年月日,而DateFormatter也基本上伴随着使用。如果是操作Date对象的,主要是用于时间戳等,伴随着使用的是SimpleDateFormat。
    1、Java 7及之前版本
    1.1、使用java.util.Calendar(不推荐)
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    public class Demo {
        public static void main(String[] args) throws ParseException {
            Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2015-09-17 20:27:00");
            Calendar now = Calendar.getInstance();
            now.setTime(date);
            
            int year = now.get(Calendar.YEAR);
            int month = now.get(Calendar.MONTH) + 1; // 0-based!
            int day = now.get(Calendar.DAY_OF_MONTH);
    
            System.out.println("year: " + year);
            System.out.println("month: " + month);
            System.out.println("day: " + day);
        }
    }

    说明:这里不建议使用全局Calendar,可以直接new一个出来new SimpleDateFormat().getCalendar()

    结果如下:

    year: 2015
    month: 9
    day: 17
    1.2、joda-time(推荐)
    import org.joda.time.LocalDate;
    import org.joda.time.format.DateTimeFormat;
    import org.joda.time.format.DateTimeFormatter;
    
    public class Demo {
        public static void main(String[] args) {
            DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss");
            LocalDate localDate = formatter.parseLocalDate("2015-09-17 20:27:00");
    
            System.out.println("yearOfCentury: " + localDate.getYearOfCentury());
            System.out.println("monthOfYear: " + localDate.getMonthOfYear());
            System.out.println("dayOfMonth: " + localDate.getDayOfMonth());
        }
    }

    结果如下:

    yearOfCentury: 15
    monthOfYear: 9
    dayOfMonth: 17
    2、Java 8,直接使用new datetime api (推荐!!)
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    
    public class Demo {
        public static void main(String[] args) {
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDateTime ldt = LocalDateTime.parse("2015-09-17 20:27:00", formatter);
    
            System.out.println("Year: " + ldt.getYear());
            System.out.println("Month: " + ldt.getMonth().getValue());
            System.out.println("DayOfMonth: " + ldt.getDayOfMonth());
        }
    }

    结果如下:

    Year: 2015
    Month: 9
    DayOfMonth: 17

    说明:

    1. Java 8提供的datetime api参考了jodatime,因此两者看起来很相似,使用Java 8 datetime api 时,如果要将日期时间存储到数据库,还应考虑数据库驱动是否支持该api
    2. Java 7及之前版本,推荐使用jodatime,省时省力省心

    示例工程:https://github.com/easonjim/5_java_example/tree/master/javabasicstest/test29/test1

    参考:

    https://www.zhihu.com/question/35650798(以上内容转自此篇文章)

  • 相关阅读:
    泰勒综合
    滤波器、窗等的系数为什么是对称的?
    l'alphabet en francais
    弄清for循环的本质
    js中的闭包
    js中用正则表达式
    java Calendar
    Android实现XML解析技术
    junit4 详解
    redhat vi 命令
  • 原文地址:https://www.cnblogs.com/EasonJim/p/7896213.html
Copyright © 2020-2023  润新知