All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.frameworkset.util.TimeUtil Maven / Gradle / Ivy

Go to download

bboss is a j2ee framework include aop/ioc,mvc,persistent,taglib,rpc,event ,bean-xml serializable and so on.http://www.bbossgroups.com

There is a newer version: 6.2.5
Show newest version
/*
 *  Copyright 2008-2010 biaoping.yin
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package org.frameworkset.util;

import com.frameworkset.util.SimpleStringUtil;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.SignStyle;
import java.time.temporal.ChronoField;
import java.util.*;
import java.util.concurrent.TimeUnit;

/**
 * 

Title: TimeUtil.java

*

Description:

*

bboss workgroup

*

Copyright (c) 2008

* @Date 2011-4-22 上午09:49:08 * @author biaoping.yin * @version 1.0 */ public class TimeUtil { public static boolean enablePersistentLocalDate = false; static{ String _enablePersistentLocalDate = SystemPropertyUtils.getEnvironmentVariableValue("enablePersistentLocalDate"); if(_enablePersistentLocalDate != null && _enablePersistentLocalDate.equalsIgnoreCase("true")){ enablePersistentLocalDate = true; } } public static TimeUnit getTimeUnitByName(String timeUnit,TimeUnit defaultTimeUnit) { TimeUnit timeUnit_ = TimeUnit.SECONDS; if (timeUnit.equals("TimeUnit.SECONDS")) { timeUnit_ = TimeUnit.SECONDS; } else if (timeUnit.equals("TimeUnit.DAYS")) { try { timeUnit_ = TimeUnit.valueOf("DAYS"); } catch(Exception e) { timeUnit_ = defaultTimeUnit; } } if (timeUnit.equals("TimeUnit.HOURS")) { try { timeUnit_ = TimeUnit.valueOf("HOURS"); } catch(Exception e) { timeUnit_ = defaultTimeUnit; } // timeUnit_ = TimeUnit.HOURS; } else if (timeUnit.equals("TimeUnit.MICROSECONDS")) { timeUnit_ = TimeUnit.MICROSECONDS; } else if (timeUnit.equals("TimeUnit.MILLISECONDS")) { timeUnit_ = TimeUnit.MILLISECONDS; } else if (timeUnit.equals("TimeUnit.MINUTES")) { try { timeUnit_ = TimeUnit.valueOf("MINUTES"); } catch(Exception e) { timeUnit_ = defaultTimeUnit; } } else if (timeUnit.equals("TimeUnit.NANOSECONDS")) { timeUnit_ = TimeUnit.NANOSECONDS; } return timeUnit_; } public static Object convertLocalDatetime(LocalDateTime localDateTime){ if (null == localDateTime) { return null; } if(enablePersistentLocalDate){ return localDateTime; } ZoneId zoneId = ZoneId.systemDefault(); ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId); Instant instant = zonedDateTime.toInstant(); Date date = Date.from(instant); return date; } public static Object convertLocalDate(LocalDate localDate){ if (null == localDate) { return null; } if(enablePersistentLocalDate){ return localDate; } ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault()); return Date.from(zonedDateTime.toInstant()); } public static Object convertLocalDate(Object localDate){ if (null == localDate) { return null; } if(localDate instanceof LocalDateTime){ return convertLocalDatetime((LocalDateTime)localDate); } else if(localDate instanceof LocalDate){ return convertLocalDate((LocalDate)localDate); } return localDate; } /** * 将字符串类型的日期转换为LocalDateTime类型数据 * Stream.of("2015-05-09T00:10:23.934596635Z", * "2015-05-09 00:10:23.123456789UTC", * "2015/05/09 00:10:23.123456789", * "2015-05-09 00:10:23.12345678", * "2015/05/09 00:10:23.1234567", * "2015-05-09T00:10:23.123456", * "2015-05-09 00:10:23.12345", * "2015/05-09T00:10:23.1234", * "2015-05-09 00:10:23.123", * "2015-05-09 00:10:23.12", * "2015-05-09 00:10:23.1", * "2015-05-09 00:10:23", * "2015-05-09 00:10", * "2015-05-09 01", * "2015-05-09" * ).forEach(s -> { * LocalDateTime date = LocalDateTime.parse(s, dateTimeFormatter); * System.out.println(s + " localdate==> " + date); * * System.out.println(s + " date==> " + par(s)); * }); * @param localDateTime * @return */ public static LocalDateTime localDateTime(String localDateTime){ DateTimeFormatter dateTimeFormatter = getDateTimeFormatter(); LocalDateTime date = LocalDateTime.parse(localDateTime, dateTimeFormatter); return date; } public static LocalDateTime date2LocalDateTime(Date date){ Instant instant = date.toInstant(); ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime(); return localDateTime; } private static DateTimeFormatter dateTimeFormatter; private static DateTimeFormatter dateTimeFormatterDefault = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'"); private static Map dateTimeFormatterMap = new LinkedHashMap<>(); private static Object lock = new Object(); public static DateTimeFormatter getDateTimeFormatter(){ if(dateTimeFormatter != null){ return dateTimeFormatter; } synchronized (lock) { if(dateTimeFormatter != null){ return dateTimeFormatter; } DateTimeFormatter ISO_LOCAL_DATE = new DateTimeFormatterBuilder() .appendValue(ChronoField.YEAR, 4, 10, SignStyle.EXCEEDS_PAD) .optionalStart().appendLiteral('/').optionalEnd() .optionalStart().appendLiteral('-').optionalEnd() .optionalStart().appendValue(ChronoField.MONTH_OF_YEAR, 2) .optionalStart().appendLiteral('/').optionalEnd() .optionalStart().appendLiteral('-').optionalEnd() .optionalStart().appendValue(ChronoField.DAY_OF_MONTH, 2) .toFormatter(); DateTimeFormatter ISO_LOCAL_TIME = new DateTimeFormatterBuilder() .appendValue(ChronoField.HOUR_OF_DAY, 2) .optionalStart().appendLiteral(':').appendValue(ChronoField.MINUTE_OF_HOUR, 2) .optionalStart().appendLiteral(':').appendValue(ChronoField.SECOND_OF_MINUTE, 2) .optionalStart().appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true) .optionalStart().appendZoneId() .toFormatter(); DateTimeFormatter dateTimeFormatter_ = new DateTimeFormatterBuilder() .append(ISO_LOCAL_DATE) .optionalStart().appendLiteral(' ').optionalEnd() .optionalStart().appendLiteral('T').optionalEnd() .optionalStart().appendOptional(ISO_LOCAL_TIME).optionalEnd() .parseDefaulting(ChronoField.HOUR_OF_DAY, 0) .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0) .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0) .toFormatter(Locale.SIMPLIFIED_CHINESE); dateTimeFormatter = dateTimeFormatter_; return dateTimeFormatter; } } public static String changeLocalDateTime2String(LocalDateTime localDateTime){ // DateTimeFormatter dateTimeFormatter = getDateTimeFormatter(); return localDateTime.format(dateTimeFormatterDefault); } public static String changeLocalDate2String(LocalDate localDateTime){ // DateTimeFormatter dateTimeFormatter = getDateTimeFormatter(); return localDateTime.format(dateTimeFormatterDefault); } public static DateTimeFormatter getDateTimeFormatter(String dateFormat){ DateTimeFormatter dateTimeFormatter = dateTimeFormatterMap.get(dateFormat); if(dateTimeFormatter != null){ return dateTimeFormatter; } synchronized (dateTimeFormatterMap){ dateTimeFormatter = dateTimeFormatterMap.get(dateFormat); if(dateTimeFormatter != null){ return dateTimeFormatter; } dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat); dateTimeFormatterMap.put(dateFormat,dateTimeFormatter); return dateTimeFormatter; } } public static String changeLocalDateTime2String(LocalDateTime localDateTime,String dateFormat){ // DateTimeFormatter dateTimeFormatter = getDateTimeFormatter(); if(SimpleStringUtil.isNotEmpty(dateFormat)) return localDateTime.format(getDateTimeFormatter( dateFormat)); else{ return localDateTime.format(dateTimeFormatterDefault); } } public static TimeUnit getTimeUnit(String timeUnit,TimeUnit defaultUnit) { TimeUnit timeUnit_ = TimeUnit.SECONDS; try { timeUnit_ = TimeUnit.valueOf(timeUnit); } catch(Exception e) { timeUnit_ = defaultUnit; } return timeUnit_; } public static Date addDates(Date date,int days) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.DAY_OF_MONTH, days); return c.getTime(); } public static Date addDateSeconds(Date date,int seconds) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.SECOND, seconds); return c.getTime(); } public static Date addDateMonths(Date date,int months) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.MONTH, months); return c.getTime(); } public static Date addDateHours(Date date,int hours) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.HOUR, hours); return c.getTime(); } public static Date addDateMinitues(Date date,int Minitues) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.MINUTE, Minitues); return c.getTime(); } public static Date addDateYears(Date date,int years) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.YEAR, years); return c.getTime(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy