一、金额转换
public static String changeF2Y(String amount) throws Exception {
if (!amount.matches("\\-?[0-9]+")) {
throw new Exception("分转元");
}
return BigDecimal.valueOf(Long.valueOf(amount)).divide(new BigDecimal(100)).toString();
}
public static String changeF2Ytwo(String amount) throws Exception {
if (!amount.matches("\\-?[0-9]+")) {
throw new Exception("分转元");
}
return (BigDecimal.valueOf(Long.valueOf(amount)).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN).toString();
}
public static String changeF2YRetain(String amount) throws Exception {
DecimalFormat df = new DecimalFormat("0.00");
return df.format(BigDecimal.valueOf(Long.valueOf(amount)).divide(new BigDecimal(100)));
}
public static String changeF2YInteger(String amount) throws Exception {
DecimalFormat df = new DecimalFormat("0");
return df.format(BigDecimal.valueOf(Long.valueOf(amount)).divide(new BigDecimal(100)));
}
public static String changeYZFInteger(String amount) throws Exception {
DecimalFormat df = new DecimalFormat("0");
return df.format(BigDecimal.valueOf(Long.valueOf(amount)).multiply(new BigDecimal(100)));
}
public static String changeInteger(BigDecimal amount) throws Exception {
DecimalFormat df = new DecimalFormat("0");
return df.format(amount);
}
二、日期格式的转换
localDateTime与Date互转
public static LocalDate date2LocalDate(Date date) {
if (null == date) {
return null;
}
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
public static Date localDate2Date(LocalDate localDate) {
if(null == localDate) {
return null;
}
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
public static Date localDateTime2Date(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
public static String formatDate(Date date) {
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
return localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}
public static Timestamp localDateTimeToTimestamp() {
return Timestamp.valueOf(LocalDateTime.now());
}
public static LocalDateTime TimestampToLocalDateTime() {
return Timestamp.from(Instant.now()).toLocalDateTime();
}
DateTimeFormatter
public class DataTimeUtils {
public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HHmmss");
public static final DateTimeFormatter YEAR_MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM");
public static final DateTimeFormatter SHORT_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyMMdd");
public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static final DateTimeFormatter SHORT_DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyMMddHHmmss");
public static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static final DateTimeFormatter LONG_DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss SSS");
public static LocalDate getCurrentLocalDate() {
return LocalDate.now();
}
public static LocalTime getCurrentLocalTime() {
return LocalTime.now();
}
public static LocalDateTime getCurrentLocalDateTime() {
return LocalDateTime.now();
}
public static String getCurrentDateStr() {
return LocalDate.now().format(DATE_FORMATTER);
}
public static String getCurrentShortDateStr() {
return LocalDate.now().format(SHORT_DATE_FORMATTER);
}
public static String getCurrentMonthStr() {
return LocalDate.now().format(YEAR_MONTH_FORMATTER);
}
public static String getCurrentDateTimeStr() {
return LocalDateTime.now().format(DATETIME_FORMATTER);
}
public static String getCurrentLongDateTimeStr(){
return LocalDateTime.now().format(LONG_DATETIME_FORMATTER);
}
public static String getCurrentShortDateTimeStr() {
return LocalDateTime.now().format(SHORT_DATETIME_FORMATTER);
}
public static String getCurrentTimeStr() {
return LocalTime.now().format(TIME_FORMATTER);
}
public static String getCurrentDateStr(String pattern) {
return LocalDate.now().format(DateTimeFormatter.ofPattern(pattern));
}
public static String getCurrentDateTimeStr(String pattern) {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern));
}
public static String getCurrentTimeStr(String pattern) {
return LocalTime.now().format(DateTimeFormatter.ofPattern(pattern));
}
public static LocalDate parseLocalDate(String dateStr, String pattern) {
return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(pattern));
}
public static LocalDateTime parseLocalDateTime(String dateTimeStr, String pattern) {
return LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern(pattern));
}
public static LocalTime parseLocalTime(String timeStr, String pattern) {
return LocalTime.parse(timeStr, DateTimeFormatter.ofPattern(pattern));
}
public static String formatLocalDate(LocalDate date, String pattern) {
return date.format(DateTimeFormatter.ofPattern(pattern));
}
public static String formatLocalDateTime(LocalDateTime datetime, String pattern) {
return datetime.format(DateTimeFormatter.ofPattern(pattern));
}
public static String formatLocalTime(LocalTime time, String pattern) {
return time.format(DateTimeFormatter.ofPattern(pattern));
}
public static LocalDate parseLocalDate(String dateStr) {
return LocalDate.parse(dateStr, DATE_FORMATTER);
}
public static LocalDateTime parseLocalDateTime(String dateTimeStr) {
return LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);
}
public static LocalDateTime parseLongLocalDateTime(String longDateTimeStr){
return LocalDateTime.parse(longDateTimeStr, LONG_DATETIME_FORMATTER);
}
public static LocalTime parseLocalTime(String timeStr) {
return LocalTime.parse(timeStr, TIME_FORMATTER);
}
public static String formatLocalDate(LocalDate date) {
return date.format(DATE_FORMATTER);
}
public static String formatLocalDateTime(LocalDateTime datetime) {
return datetime.format(DATETIME_FORMATTER);
}
public static String formatLocalTime(LocalTime time) {
return time.format(TIME_FORMATTER);
}
public static long periodHours(LocalDateTime startDateTime, LocalDateTime endDateTime){
return Duration.between(startDateTime, endDateTime).get(ChronoUnit.SECONDS);
}
public static long periodDays(LocalDate startDate, LocalDate endDate) {
return startDate.until(endDate, ChronoUnit.DAYS);
}
public static long periodWeeks(LocalDate startDate, LocalDate endDate) {
return startDate.until(endDate, ChronoUnit.WEEKS);
}
public static long periodMonths(LocalDate startDate, LocalDate endDate) {
return startDate.until(endDate, ChronoUnit.MONTHS);
}
public static long periodYears(LocalDate startDate, LocalDate endDate) {
return startDate.until(endDate, ChronoUnit.YEARS);
}
public static boolean isToday(LocalDate date) {
return getCurrentLocalDate().equals(date);
}
public static Long toEpochMilli(LocalDateTime dateTime) {
return dateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
public static boolean isLeapYear(LocalDate localDate){
return localDate.isLeapYear();
}
}