JAVA常用时间类及ORACLE的时间格式

JAVA常用时间类及ORACLE的时间格式

to_char(t.datelastupdated,'yyyy-mm-dd hh24:mi:ss:ff3')
,to_char(systimestamp,'YYYY-MM-DD HH24:MI:SS.FF3')

ORACLE的时间格式. 注意数据库中date类型和timestamp类型的区别

where
to_char(t.discharge_time,'yyyy-MM-dd HH24:mi:ss') >='2007-12-08 10:00:00'
and to_char(t.discharge_time,'yyyy-MM-dd HH24:mi:ss')<= '2007-12-24 10:30:00'
//
t.discharge_time >= to_date('1899-12-30 1:00:00','yyyy-MM-dd HH24:mi:ss')
and  t.discharge_time <= to_date('2008-11-24 00:00:00', 'yyyy-MM-dd HH24:mi:ss')

select 1  from dba_tables t WHERE  t.table_name = 'TBL_SWIFTS_OPER_INFO' and t.tablespace_name='USERS';

JAVA常用时间类

package saptac.core.util;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class DateUtil {
protected final static Log log = LogFactory.getLog(DateUtil.class);

private static String defaultDatePattern = null;

private static String timePattern = "HH:mm";

public final static String DATE_Pattern = "yyyy-MM-dd hh:mm:ss";
public static final String DATE_Pattern_2 = "yyyy-MM-dd hh:mm:ss.S";

public static final void main (String a[]) {
 java.util.Date d= new java.util.Date();
 java.sql.Timestamp t = new Timestamp(d.getTime());

 String ret = convertTimestampToString(t,DATE_Pattern);
 System.out.println(ret);
 
 java.util.Date d2= new java.util.Date();
 java.sql.Date t2 = new java.sql.Date(d2.getTime());

String ret2 =  convertSqlDateToString(t2, DATE_Pattern);
 System.out.println(ret2);
 
 String ret3 =  convertSqlDateToString(t2, DATE_Pattern_2);
 System.out.println(ret3);
 
 SimpleDateFormat df = new SimpleDateFormat(DATE_Pattern);
 String ret4 = df.format(t2);
 
 java.sql.Date t5 = new java.sql.Date(d2.getTime());
 java.util.Date t6 = (java.util.Date)t5;
 String ret6 =  getDateTime(DATE_Pattern,t6);
 System.out.println(ret6);
}

/**
 * 把java.sql.Date 转换成String
 * @param timestamp
 * @return
 */
public static String convertSqlDateToString(java.sql.Date date, String pattern) {
 
 SimpleDateFormat df = new SimpleDateFormat(pattern);
 String ret = df.format(date);

return ret;
}


/**
 * 把java.sql.Timestamp 转换成String
 * @param timestamp
 * @return
 */
public static String convertTimestampToString(java.sql.Timestamp timestamp, String pattern) {
 
 SimpleDateFormat df = new SimpleDateFormat(pattern);
 String ret = df.format(timestamp);

return ret;
}

/**
 * 获取当前时间
 * @return yyyy
 */
public static String getCurrYear()
{
 String ret = "";
 SimpleDateFormat df = new SimpleDateFormat("yyyy");
 ret = df.format(new Timestamp(System.currentTimeMillis()));
 return ret;
}

/**
 * 获取当前时间
 * @return date
 */
public static Date getNowDate()
{
 
 return new Date(System.currentTimeMillis());
}
/**
 * 获取当前时间
 * @return MM
 *
 */
public static String getCurrMonth()
{
 String ret = "";
 SimpleDateFormat df = new SimpleDateFormat("MM");
 ret = df.format(new Timestamp(System.currentTimeMillis()));
 return ret;
}

/**
 * 获取下月时间
 * @input yyyyMMdd
 * @return date
 *
 */
public static Date getEndYearMonth(String inputDate)
{
 SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
 Calendar ca= Calendar.getInstance();
 
 try {
  ca.setTime(df.parse(inputDate));
  ca.add(Calendar.MONTH, 1);
  ca.add(Calendar.DAY_OF_MONTH, -1);
  ca.set(Calendar.HOUR_OF_DAY, 23);
  ca.set(Calendar.MINUTE, 59);
  ca.set(Calendar.SECOND, 59);
 } catch (ParseException e) {
  e.printStackTrace();
 }
 return ca.getTime();
}
/**
 * 获取当月时间
 * @input yyyyMMdd
 * @return date
 * @throws Exception
 *
 */
public static Date getYearMonth(String inputDate) throws Exception
{
 SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
 Calendar ca= Calendar.getInstance();
 
 try {
  Date date=df.parse(inputDate);
  ca.set(Calendar.HOUR_OF_DAY, 0);
  ca.set(Calendar.MINUTE, 0);
  ca.set(Calendar.SECOND, 0);
  ca.setTime(date);
 } catch (Exception e) {
  throw new Exception(e.getMessage());
 }
 return ca.getTime();
}
/**
 * 下月时间
 * @return yyyyMM
 *
 */
public static String getNextMonth()
{
 Calendar ca= Calendar.getInstance();
 ca.add(Calendar.MONTH, 1);
 SimpleDateFormat df = new SimpleDateFormat("MM");
 String ret = "";
 ret = df.format(ca.getTime());
 return ret;
}
/**
 * 获取当前时间
 * @return yyyy-MM-dd hh:mm:ss
 */
public static String getCurrTime()
{
 String ret = "";
 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 ret = df.format(new Timestamp(System.currentTimeMillis()));
 return ret;
}
/**固定日期格式
 *
 * @return
 */
public static synchronized String getDatePattern() {
 defaultDatePattern = "yyyy-MM-dd";
 return defaultDatePattern;
}

/**
 * 固定日期+时间格式
 * @return
 */
public static String getDateTimePattern() {
 return DateUtil.getDatePattern() + " HH:mm:ss.S";
}

/**
 * 转换时间格式
 *
 * @param aDate
 *            date from database as a string
 * @return formatted string for the ui
 */
public static final String getDate(Date aDate) {
 SimpleDateFormat df = null;
 String returnValue = "";

if (aDate != null) {
  df = new SimpleDateFormat(getDatePattern());
  returnValue = df.format(aDate);
 }

return (returnValue);
}

/**
 * 转换字符转日期
 *
 * @param aMask
 *            the date pattern the string is in
 * @param strDate
 *            a string representation of a date
 * @return a converted Date object
 * @see java.text.SimpleDateFormat
 * @throws ParseException
 */
public static final Date convertStringToDate(String aMask, String strDate)
  throws ParseException {
 SimpleDateFormat df = null;
 Date date = null;
 df = new SimpleDateFormat(aMask);

if (log.isDebugEnabled()) {
  log.debug("converting '" + strDate + "' to date with mask '"
    + aMask + "'");
 }

try {
  date = df.parse(strDate);
 } catch (ParseException pe) {
  throw new ParseException(pe.getMessage(), pe.getErrorOffset());
 }

return (date);
}

/**
 * 转换时间格式
 * @param theTime
 *            the current time
 * @return the current date/time
 */
public static String getTimeNow(Date theTime) {
 return getDateTime(timePattern, theTime);
}

/**
 * @return the current date
 * @throws ParseException
 */
public static Calendar getToday() throws ParseException {
 Date today = new Date();
 SimpleDateFormat df = new SimpleDateFormat(getDatePattern());
 String todayAsString = df.format(today);
 Calendar cal = new GregorianCalendar();
 cal.setTime(convertStringToDate(todayAsString));

return cal;
}

/**
 * 转换时间
 * @param aMask
 *            the date pattern the string is in
 * @param aDate
 *            a date object
 * @return a formatted string representation of the date
 *
 * @see java.text.SimpleDateFormat
 */
public static final String getDateTime(String aMask, Date aDate) {
 SimpleDateFormat df = null;
 String returnValue = "";

if (aDate == null) {
  log.error("aDate is null!");
 } else {
  df = new SimpleDateFormat(aMask);
  returnValue = df.format(aDate);
 }

return (returnValue);
}

/**
 *
 * @param aDate
 *            A date to convert
 * @return a string representation of the date
 */
public static final String convertDateToString(Date aDate) {
 return getDateTime(getDatePattern(), aDate);
}

/**
 * 字符转换时间
 * @param strDate
 *            the date to convert (in format MM/dd/yyyy)
 * @return a date object
 *
 * @throws ParseException
 */
public static Date convertStringToDate(String strDate)
   {
 Date aDate = null;

try {
  if (log.isDebugEnabled()) {
   log.debug("converting date with pattern: " + getDatePattern());
  }

aDate = convertStringToDate(getDatePattern(), strDate);
 } catch (ParseException pe) {
  log.error("Could not convert '" + strDate
    + "' to a date, throwing exception");
  pe.printStackTrace();

}

return aDate;
}
/**
 * 用于将string转换成所需要的格式
 * @param strDate 格式为YYYYMMDD的string
 * @return str 格式为YYYY-MM-DD的string
 */
   public static Timestamp converStringToSsNeedDate(String strDate)
   {  
    Timestamp date=null;
    String str = null;
    if(strDate.length()==8){
     str = strDate.substring(0,4)+"-"+strDate.substring(4,6)+"-"+strDate.substring(6,8)+" 00:00:00";
        date=Timestamp.valueOf(str);
    }
 else{
  str="2006-12-26 00:00:00";
  date=Timestamp.valueOf(str);
 }
    return date;
   }
   

}

Read more

深入理解 Proxy 和 Object.defineProperty

在JavaScript中,对象是一种核心的数据结构,而对对象的操作也是开发中经常遇到的任务。在这个过程中,我们经常会使用到两个重要的特性:Proxy和Object.defineProperty。这两者都允许我们在对象上进行拦截和自定义操作,但它们在实现方式、应用场景和灵活性等方面存在一些显著的区别。本文将深入比较Proxy和Object.defineProperty,包括它们的基本概念、使用示例以及适用场景,以帮助读者更好地理解和运用这两个特性。 1. Object.defineProperty 1.1 基本概念 Object.defineProperty 是 ECMAScript 5 引入的一个方法,用于直接在对象上定义新属性或修改已有属性。它的基本语法如下: javascript 代码解读复制代码Object.defineProperty(obj, prop, descriptor); 其中,obj是目标对象,prop是要定义或修改的属性名,descriptor是一个描述符对象,用于定义属性的特性。 1.2 使用示例 javascript 代码解读复制代码//

By Ne0inhk

Proxy 和 Object.defineProperty 的区别

Proxy 和 Object.defineProperty 是 JavaScript 中两个不同的特性,它们的作用也不完全相同。 Object.defineProperty 允许你在一个对象上定义一个新属性或者修改一个已有属性。通过这个方法你可以精确地定义属性的特征,比如它是否可写、可枚举、可配置等。该方法的使用场景通常是需要在一个对象上创建一个属性,然后控制这个属性的行为。 Proxy 也可以用来代理一个对象,但是相比于 Object.defineProperty,它提供了更加强大的功能。使用 Proxy 可以截获并重定义对象的基本操作,比如访问属性、赋值、函数调用等等。在这些操作被执行之前,可以通过拦截器函数对这些操作进行拦截和修改。因此,通过 Proxy,你可以完全重写一个对象的默认行为。该方法的使用场景通常是需要对一个对象的行为进行定制化,或者需要在对象上添加额外的功能。 对比 以下是 Proxy 和 Object.defineProperty 的一些区别对比: 方面ProxyObject.defineProperty语法使用 new Proxy(target,

By Ne0inhk