package com.example.times.datetimeformat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAccessor;
import java.util.Date;
public class DateTo {
public static void main(String[] args) {
String s = dateToString("yyyy-MM-dd",0);
System.out.println("方法1: "+s);
String date = dateToString(new Date(), "yyyy-MM-dd HH:mm:ss");
System.out.println("方法2: "+date);
}
public static String monthsToString(String timeFormat,Integer monthsNumber) {
DateTimeFormatter format = DateTimeFormatter.ofPattern(timeFormat);
LocalDateTime localDateTime = LocalDateTime.now();
LocalDateTime plus = localDateTime.plus(monthsNumber, ChronoUnit.MONTHS);
return plus.format(format);
}
public static String dateToString(String timeFormat,Integer dateNumber) {
DateTimeFormatter format = DateTimeFormatter.ofPattern(timeFormat);
LocalDateTime localDateTime = LocalDateTime.now();
LocalDateTime plus = localDateTime.plus(dateNumber, ChronoUnit.DAYS);
return plus.format(format);
}
public static String dateToString(Date date, String timeFormat) {
DateTimeFormatter format = DateTimeFormatter.ofPattern(timeFormat);
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
return localDateTime.format(format);
}
}
package com.example.times.utils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
public static String DATE_PATTERN_YYYYMMDD = "yyyy-MM-dd";
public static String formatDateYYYYMMDD(Date date) {
SimpleDateFormat timeFt = new SimpleDateFormat(DATE_PATTERN_YYYYMMDD);
return (date == null ? "" : timeFt.format(date));
}
public static String getFirstDayOfYear(int year) {
return getFirstDayOfQuarter(year, 1);
}
public static String getLastDayOfYear(int year) {
return getLastDayOfQuarter(year, 4);
}
public static String getFirstDayOfQuarter(int year, int quarter) {
int month = 0;
if (quarter > 4) {
return null;
} else {
month = (quarter - 1) * 3 + 1;
}
return getFirstDayOfMonth(year, month);
}
public static String getLastDayOfQuarter(int year, int quarter) {
int month = 0;
if (quarter > 4) {
return null;
} else {
month = quarter * 3;
}
return getLastDayOfMonth(year, month);
}
public static String getFirstDayOfMonth(int year, int month) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month - 1);
c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
return formatDateYYYYMMDD(c.getTime());
}
public static String getLastDayOfMonth(int year, int month) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month - 1);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
return formatDateYYYYMMDD(c.getTime());
}
public static String getFirstDayOfWeek(int year, int week) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.WEEK_OF_YEAR, week);
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.setFirstDayOfWeek(Calendar.MONDAY);
return formatDateYYYYMMDD(c.getTime());
}
public static String getLastDayOfWeek(int year, int week) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, year);
c.set(Calendar.WEEK_OF_YEAR, week);
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);
return formatDateYYYYMMDD(c.getTime());
}
public static int getCurrentWeek() {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTime(new Date());
return cal.get(Calendar.WEEK_OF_YEAR);
}
public static void main(String[] args) {
System.out.println("某年第一天: " + getFirstDayOfYear(2019));
System.out.println("某年最后一天 : " + getLastDayOfYear(2019));
System.out.println("某年某季度第一天: " + getFirstDayOfQuarter(2019, 10));
System.out.println("某年某季度最后一天: " + getLastDayOfQuarter(2019, 10));
System.out.println("某年某月的第一天: " + getFirstDayOfMonth(2019, 10));
System.out.println("某年某月的最后一天: " + getLastDayOfMonth(2019, 10));
System.out.println("某年某周的第一天: " + getFirstDayOfWeek(2019, 10));
System.out.println("某年某周的最后一天: " + getLastDayOfWeek(2019, 10));
System.out.println("当前日期: " + formatDateYYYYMMDD(new Date()) + ", 本年第" + getCurrentWeek() + "周");
}
}