public class DateUtils {
/**
* 从一组日期中找到最大的
* @param dates
* @return
*/
public static Date max(Date[] dates) {
Date md = dates[0];
for (int i = 0; i < dates.length; i++) {
md = max(md, dates[i]);
}
return md;
}
/**
* 两者之间大的一个
* @param d1
* @param d2
* @return
*/
public static Date max(Date d1, Date d2) {
return (d1.getTime() > d2.getTime()) ? d1 : d2;
}
/**
* 从一组日期中找到最小的
* @param dates
* @return
*/
public static Date min(Date[] dates) {
Date md = dates[0];
for (int i = 0; i < dates.length; i++) {
md = min(md, dates[i]);
}
return md;
}
/**
* 两者之间大小的一个
* @param d1
* @param d2
* @return
*/
public static Date min(Date d1, Date d2) {
return (d1.getTime() > d2.getTime()) ? d2 : d1;
}
/**
* 当前时间
*
* @return
*/
public static Date now() {
return new Date();
}
/**
* 当前日期,截取到天
*
* @return
*/
public static Date today() {
return day(now());
}
/**
* 当前时间
*
* @return
*/
public static String currentTime() {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
return formatter.format(new Date());
}
/**
* 指定日期的后一天
*
* @param date
* @return
*/
public static Date nextDay(Date date) {
return add(date, 1);
}
private static Date getNextYear(Date date) {
Calendar currentDate = Calendar.getInstance();
currentDate.setTime(date);
if ((((currentDate.get(Calendar.YEAR) % 4) == 0)
&& ((currentDate.get(Calendar.YEAR) % 100) != 0)) || ((currentDate.get(Calendar.YEAR) % 400) == 0)){
Calendar specialDate = Calendar.getInstance();
specialDate.setTime(date);
specialDate.set(currentDate.get(Calendar.YEAR), 1, 29);
if (!currentDate.before(specialDate)&&!currentDate.after(specialDate)){
return add(addYear(date, 1),-1);
}else{
return addYear(date, 1);
}
}
Calendar nextYear = Calendar.getInstance();
nextYear.setTime(addYear(date, 1));
if ((((nextYear.get(Calendar.YEAR) % 4) == 0)
&& ((nextYear.get(Calendar.YEAR) % 100) != 0)) || ((nextYear.get(Calendar.YEAR) % 400) == 0)){
Calendar specialDate = Calendar.getInstance();
specialDate.setTime(date);
specialDate.set(currentDate.get(Calendar.YEAR), 1, 28);
if (!currentDate.before(specialDate)&&!currentDate.after(specialDate)){
return add(addYear(date, 1),1);
}else{
return addYear(date, 1);
}
}
return addYear(date, 1);
}
/**
* 指定日期的后一年
*
* @param date
* @return
*/
public static Date nextYear(Date date) {
return day(getNextYear(date));
}
/**
* 截取到天
*
* @param date
* @return
*/
public static Date day(Date date) {
return trunc(date, "D");
}
/**
* 截取到月:当月第一天
*
* @param date
* @return
*/
public static Date month(Date date) {
return trunc(date, "M");
}
/**
* 给定日期增加天数
*
* @param date
* @param days
* @return
*/
public static Date add(Date date, int days) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR) + days);
return c.getTime();
}
public static Date minus(Date date, int days) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR) - days);
return c.getTime();
}
/**
* 给定日期增加秒数
*
* @param date
* @param days
* @return
*/
public static Date addSeconds(Date date, int seconds) {
Calendar c = Calendar.getInstance();
c.setTime(date);
//c.set(Calendar.SECOND, c.get(Calendar.SECOND) + seconds);
c.add(Calendar.SECOND, seconds);
return c.getTime();
}
/**
* 给定日期增加分钟数
*
* @param date
* @param days
* @return
*/
public static Date addMinutes(Date date, int Minutes) {
Calendar c = Calendar.getInstance();
c.setTime(date);
//c.set(Calendar.MINUTE, c.get(Calendar.MINUTE) + Minutes);
c.add(Calendar.MINUTE, Minutes);
return c.getTime();
}
/**
* 给定日期减小时数
*
* @param date
* @param days
* @return
*/
public static Date minusHours(Date date, int hours) {
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR, -hours);
return c.getTime();
}
public static String minusHoursString(Date date, int hours,String pattern) {
Calendar c = Calendar.getInstance();
c.add(Calendar.HOUR, -hours);
return formatStringFromDate(c.getTime(),pattern);
}
/**
* 是否是一天的最后一秒,
* 也就是****-**-** 23:59:59
*
* @param date
* @param seconds
* @return
*/
public static boolean islastSecondsTime(Date date) {
int hour = date.getHours();
int minute = date.getMinutes();
int second = date.getSeconds();
return hour==23 && minute==59 && second==59;
}
/**
* 给定日期增加月数, 算法如下:
* 1. 计算前的日期为非月底, 只按照日期加了之后, 计算后的日期的天没有超过这个月的最后一天, 则正常加月即可.
* 比如2012-01-01 + 1月 == 2012-02-01
* 2. 如果计算前的日期就是为月底, 则不管怎么样, 其结果一定是下个月的月底.
* 比如2012-01-31 + 1月 == 2012-02-29
* 2012-02-29 + 1月 == 2012-03-31
*
* @param date
* @param days
* @return
*/
// LL UPDATE START 20140611
// 重构:解决MIT满期日BUG
// public static Date addMonth(Date date, int months) {
// Calendar c = Calendar.getInstance();
// c.setTime(date);
//
// Calendar firstDayOfCalcMonthC = Calendar.getInstance();
// firstDayOfCalcMonthC.set(Calendar.YEAR, c.get(Calendar.YEAR));
// firstDayOfCalcMonthC.set(Calendar.MONTH, c.get(Calendar.MONTH) + months);
// firstDayOfCalcMonthC.set(Calendar.DAY_OF_MONTH, 1);
// Date lastDayOfCalcMonth = lastDayOfMonth(firstDayOfCalcMonthC.getTime());
//
// Date endMonthDay = lastDayOfMonth(c.getTime());
// if(c.getTime().compareTo(endMonthDay) == 0)
// {
// return lastDayOfCalcMonth;
// }
//
// c.set(Calendar.MONTH, c.get(Calendar.MONTH) + months);
// Date dateAfterAdded = c.getTime();
//
// if(dateAfterAdded.compareTo(lastDayOfCalcMonth) > 0)
// {
// return lastDayOfCalcMonth;
// }
// return dateAfterAdded;
// }
public static Date addMonth(Date date, int months) {
Calendar c = Calendar.getInstance();
c.setTime(date);
// 参数时间是否为月末
boolean ifMaxDayOfMonth = (c.getActualMaximum(Calendar.DAY_OF_MONTH) == c.get(Calendar.DAY_OF_MONTH));
// 增加月数
c.add(Calendar.MONTH, months);
if(ifMaxDayOfMonth) {
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
}
return c.getTime();
}
// LL UPDATE END
/**
* 给定日期增加年数
*
* @param date
* @param days
* @return
*/
public static Date addYear(Date date, int years) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.YEAR, c.get(Calendar.YEAR) + years);
return c.getTime();
}
/**
* 指定日期的当月最后一天
*
* @param date
* @return
*/
public static Date lastDayOfMonth(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
return c.getTime();
}
/**
* 指定日期的次月最后一天
*
* @param date
* @return
*/
public static Date lastDayOfNextMonth(Date date) {
return trunc(lastDayOfMonth(addMonth(date, 1)),"D");
}
/**
* 指定日期的次月1日
*
* @param date
* @return
*/
public static Date firstDayOfNextMonth(Date date) {
return trunc(add(lastDayOfMonth(date),1),"D");
}
/**
* 指定日期的当月第一天
*
* @param date
* @return
*/
public static Date firstDayOfMonth(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
return c.getTime();
}
/**
* 指定日期的当年第一天
*
* @param date
* @return
*/
public static Date firstDayOfYear(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_YEAR, c.getActualMinimum(Calendar.DAY_OF_YEAR));
return c.getTime();
}
/**
* 指定日期的当年最后一天
*
* @param date
* @return
*/
public static Date lastDayOfYear(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_YEAR, c.getActualMaximum(Calendar.DAY_OF_YEAR));
return c.getTime();
}
/**
* 计算两个日期之间月份数
* @param date1
* @param date2
* @return
*/
public static int diffMonths(Date date2, Date date1){
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(date1);
c2.setTime(date2);
int year1 = c1.get(Calendar.YEAR);
int year2 = c2.get(Calendar.YEAR);
int month1 = c1.get(Calendar.MONTH)+1;
int month2 = c2.get(Calendar.MONTH)+1;
return (year2-year1)*12+(month2-month1);
}
/**
* 比较日期天数之差,第一个时间减去第二时间
*
* @param date1
* @param date2
* @return
*/
public static double diffDays(Date date1, Date date2) {
long diff = date1.getTime() - date2.getTime();
BigDecimal bd = new BigDecimal(diff);
// 尽量保持精度16
return bd.divide(new BigDecimal(D), 16,BigDecimal.ROUND_HALF_UP).doubleValue();
// return Calculate.divide(diff, D);
}
/**
* 天数计算,不足一天不算
*
* @param date1
* @param date2
* @return
*/
public static int fullDays(Date date1, Date date2) {
return (int) Math.floor(diffDays(date1, date2));
}
/**
* 天数计算,不足一天算一天
*
* @param date1
* @param date2
* @return
*/
public static int days(Date date1, Date date2) {
return (int) Math.ceil(diffDays(date1, date2));
}
/**
* 对时间精确度作trunc,使用String来作为pattern,支持以下情况
* <ul>
* <li>S 秒</li>
* <li>M 分钟</li>
* <li>H 小时</li>
* <li>D 天</li>
* <li><i>W 周</i></li>
* </ul>
*
* @param date
* @param pattern:
* s, m, h, d, w
* @return
*/
public static Date trunc(Date date, String pattern) {
// 采用比较笨的截取方式简化处理,按time计算涉及时区等各种问题比较麻烦
SimpleDateFormat format = new SimpleDateFormat(getPattern(pattern
.toUpperCase()));
try {
return format.parse(format.format(date));
} catch (ParseException e) {
// Shit Happen
throw new RuntimeException("不能处理的trunc格式" + pattern, e);
}
}
private static Map patterns = new HashMap();
static {
patterns.put("SS", "yyyy-MM-dd HH:mm:ss");
patterns.put("S", "yyyyMMdd HH:mm:ss");
patterns.put("M", "yyyyMMdd HH:mm");
patterns.put("H", "yyyyMMdd HH");
patterns.put("D", "yyyyMMdd");
patterns.put("DD", "yyyy-MM-dd");
patterns.put("SSS", "yyyyMMddHHmmssSSS");
}
private static String getPattern(String pattern) {
String p = (String) patterns.get(pattern);
if (null == p) {
throw new java.lang.IllegalArgumentException("不能处理的trunc格式"
+ pattern);
}
return p;
}
/**
* 获取指定的字符串日期表达形式
*
* @param date 指定日期
* @param format 希望返回的字符串格式
* 目前支持如下格式: <br> 1. "yyyy-MM-dd HH:mm:ss" <br>
* 2. "yyyy-MM-dd HH:mm" <br>
* 3. "yyyy-MM-dd" <br>
* 4. "yyyyMMdd" <br>
*
* @return 返回一个字符串的日期表达或者null
*/
public static String formatStringFromDate(Date date, String format)
{
String format1 = "^[y]{4}-[M]{2}-[d]{2} [H]{2}:[m]{2}:[s]{2}$";
String format2 = "^[y]{4}-[M]{2}-[d]{2} [H]{2}:[m]{2}$";
String format3 = "^[y]{4}-[M]{2}-[d]{2}$";
String format4 = "^[y]{4}[M]{2}[d]{2}$";
String format5 = "^[y]{4}[M]{2}[d]{2}[H]{2}[m]{2}[s]{2}$";
String format6 = "^[y]{4}[M]{2}[d]{2}[H]{2}[m]{2}[s]{2}[SSS]{3}$";
if(Pattern.matches(format1, format))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
if(Pattern.matches(format2, format))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
if(Pattern.matches(format3, format))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
if(Pattern.matches(format4, format))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
if(Pattern.matches(format5, format))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
if(Pattern.matches(format6, format))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
return null;
}
public static final long S = 1000;
public static final long M = S * 60;
public static final long H = M * 60;
public static final long D = H * 24;
public static final long W = D * 7;
/**
* 将指定时间的时, 分, 秒 字段截去, 即取指定天的开始时间.
* eg: 如果输入的是 "Tue Aug 10 14:52:46 CST 2010" 这个时间
* <br> 则会返回 "Tue Aug 10 00:00:00 CST 2010" 这个时间
*
* @param date
* @return
*/
public static Date getStartOfDate(Date date)
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
return calendar.getTime();
}
/**
* 取指定天的结束时间.
* eg: 如果输入的是 "Tue Aug 10 14:52:46 CST 2010" 这个时间
* <br> 则会返回 "Tue Aug 10 23:59:59 CST 2010" 这个时间
*
* @param date
* @return
*/
public static Date getEndOfDate(Date date)
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
return calendar.getTime();
}
/**
*
* @param dateValue 字符串表示的日期值
* 目前支持如下格式:<br> 1. "yyyy-MM-dd HH:mm:ss" <br>
* 2. "yyyy-MM-dd HH:mm" <br>
* 3. "yyyy-MM-dd" <br>
* 4. "yyyyMMdd" <br>
* 4. "yyyyMMddHHmmss" <br>
*
* @return 返回一个日期值或者null.
*/
public static Date parseDate(String dateValue) {
try{
String format1 = "yyyy-MM-dd HH:mm:ss";
String dateValueFormat1 = "^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d$";
String format2 = "yyyy-MM-dd HH:mm";
String dateValueFormat2 = "^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d$";
String format3 = "yyyy-MM-dd";
String dateValueFormat3 = "^\\d\\d\\d\\d-\\d\\d-\\d\\d$";
String format4 = "yyyyMMdd";
String dateValueFormat4 = "^\\d\\d\\d\\d\\d\\d\\d\\d$";
String format5 = "yyyyMMddHHmmss";
String dateValueFormat5 = "^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d$";
if (Pattern.matches(dateValueFormat1, dateValue))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format1);
return dateFormat.parse(dateValue);
}
if (Pattern.matches(dateValueFormat2, dateValue))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format2);
return dateFormat.parse(dateValue);
}
if (Pattern.matches(dateValueFormat3, dateValue))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format3);
return dateFormat.parse(dateValue);
}
if (Pattern.matches(dateValueFormat4, dateValue))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format4);
return dateFormat.parse(dateValue);
}
if (Pattern.matches(dateValueFormat5, dateValue))
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format5);
return dateFormat.parse(dateValue);
}
}catch(ParseException e){
LogUtil.error(DateUtils.class.getName(), "时间转换错误");
}
return null;
}
/**
* 获取时分秒
* @param date
* @return
*/
public static String getTime(Date date){
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
return format.format(date);
}
/**
* 获取完整的年份
*
* @param date
* @return
*/
public static String getFullYearStr(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return String.valueOf(calendar.get(Calendar.YEAR));
}
public static int getFullYearInt(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
/**
* 返回01, 02, 03, ... 12等等月份
*
* @param date
* @return
*/
public static String getFullMonthStr(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int month = calendar.get(Calendar.MONTH) + 1;
if(month <= 9)
{
return "0" + month;
}
return String.valueOf(month);
}
public static int getFullMonthInt(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH)+1;
}
public static String getFullDayStr(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int day = calendar.get(Calendar.DATE);
if(day <= 9)
{
return "0" + day;
}
return String.valueOf(day);
}
public static int getFullDayInt(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DATE)+1;
}
public static String getDateNoSecondOrSecond(Date date){
boolean isZeroDate = trunc(date,"DD").compareTo(date)==0;
if (isZeroDate){
return formatStringFromDate(date,(String)patterns.get("DD"));
}else{
return formatStringFromDate(date,(String)patterns.get("SS"));
}
}
/**
* 获得正确的日期,如果日期格式不对返回null
* @param dateValue
* @param format
* @return Date
* @throws Exception
*/
public static Date getValidDate(String dateValue,String format) {
if(dateValue==null||dateValue.trim().length()==0) {
return null;
}
try {
dateValue = dateValue.trim();
SimpleDateFormat formater = new SimpleDateFormat(format);
Date date = formater.parse(dateValue);
if(dateValue.equals(formater.format(date))) {
return date;
}
}
catch(Exception e) {
e.fillInStackTrace();
}
return null;
}
/**
* 计算年龄
* @param birth
* @return
*/
public static int calculateAge(String birth,String effDate){
int birthYear = Integer.parseInt(birth.substring(0,4));
int birthDay = Integer.parseInt(birth.substring(4));
int nowYear = Integer.parseInt(effDate.substring(0,4));
int nowDay = Integer.parseInt(effDate.substring(4));
//比较生日和有效日期的月份加天数的和在一年之年的总天数的差值
if(birthDay > nowDay){
return nowYear - birthYear - 1;
}
else{
return nowYear - birthYear;
}
}
/**
* 将String转换为Date
* @param dateValue
* @return Date
* @throws Exception
*/
public static Date getStringToDate(String dateValue,String form) {
if(dateValue==null||dateValue.trim().length()==0) {
return null;
}
if (form.equals(patterns.get("SS")) || form.equals(patterns.get("S")) || form.equals(patterns.get("M")) || form.equals(patterns.get("H")) || form.equals(patterns.get("D")) || form.equals(patterns.get("DD")) || form.equals(patterns.get("SSS"))) {
try {
dateValue = dateValue.trim();
SimpleDateFormat formater=null;
if(dateValue.contains("-") || dateValue.contains("/")){
formater = new SimpleDateFormat(form);
}else{
return null;
}
Date date = formater.parse(dateValue);
if(dateValue.equals(formater.format(date))) {
return date;
}
}
catch(Exception e) {
e.fillInStackTrace();
}
}
return null;
}
/**
* 将Date转换为String
* @param dateValue
* @return Date
* @throws Exception
*/
public static String getDateToString(Date dateValue) {
if(dateValue==null|| "".equals(dateValue)) {
return null;
}
try {
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
String date = formater.format(dateValue);
return date;
}
catch(Exception e) {
e.fillInStackTrace();
}
return null;
}
/**
* 将Date转换为String
* @param dateValue
* @return Date
* @throws Exception
*/
public static String gettoString(Date dateValue) {
if(dateValue==null|| "".equals(dateValue)) {
return null;
}
try {
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd");
String date = formater.format(dateValue);
return date;
}
catch(Exception e) {
e.fillInStackTrace();
}
return null;
}
/**
* 获取当前季度的第一天
* @param dateValue
* @return String
* @throws Exception
*/
public static String getCurrentQuarterStatrtTime(){
Calendar c=Calendar.getInstance();
int currentMonth=c.get(Calendar.MONTH)+1;
String now =null;
try {
if(currentMonth>=1 && currentMonth<=3){
c.set(Calendar.MONTH,0);
}
if(currentMonth>=4 && currentMonth<=6){
c.set(Calendar.MONTH,3);
}
if(currentMonth>=7 && currentMonth<=9){
c.set(Calendar.MONTH,6);
}
if(currentMonth>=10 && currentMonth<=12){
c.set(Calendar.MONTH,9);
}
c.set(Calendar.DATE, 1);
now=getDateToString(c.getTime());
return now;
} catch (Exception e) {
e.fillInStackTrace();
return null;
}
}
/**
* 根据输入的季度得到季度的第一天
* @param dateValue
* @return String
* @throws Exception
*/
public static String getCurrentQuarter(int quarter){
Calendar c=Calendar.getInstance();
String now =null;
try {
if(quarter==1){
c.set(Calendar.MONTH,0);
}else
if(quarter==2){
c.set(Calendar.MONTH,3);
}else
if(quarter==3){
c.set(Calendar.MONTH,6);
}else
if(quarter==4){
c.set(Calendar.MONTH,9);
}else{
return null;
}
c.set(Calendar.DATE, 1);
now=getDateToString(c.getTime());
return now;
} catch (Exception e) {
e.fillInStackTrace();
return null;
}
}
/**
* 根据输入的时间获取当前日期的年-月-日
* @param dateValue
* @return String
* @throws Exception
*/
public static Date getYearMonthDayTime(String time){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = formatter.parse(time);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String formatDate(Date date, String pattern){
SimpleDateFormat format = new SimpleDateFormat(pattern);
return format.format(date);
}
public static String formatDate(Date date){
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
return format.format(date);
}
public static Date parseDate(String time, String format) throws Exception{
SimpleDateFormat formater = new SimpleDateFormat(format);
return formater.parse(time);
}
}