This repository has been archived on 2025-12-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tcommon-studio-se/main/plugins/org.talend.librariesmanager/resources/java/routines/system/DBDateParser.java

59 lines
2.1 KiB
Java

package routines.system;
import routines.TalendDate;
public abstract class DBDateParser {
public static final String MYSQL = "mysql_id";
private static java.util.Map<String, DBDateParser> managerMap = new java.util.HashMap<String, DBDateParser>();
public static DBDateParser getDBDateParser(String dbmsId){
DBDateParser dBDateParser = managerMap.get(dbmsId);
if(dBDateParser==null){
if(MYSQL.equals(dbmsId)){
dBDateParser = new MysqlDateParser();
}
}
managerMap.put(dbmsId, dBDateParser);
return dBDateParser;
}
public String getDateString(String dbmsId,String dbType,long date,String pattern){
String return_date = "";
String defaultPattern = getDBDateParser(dbmsId).getDefaultPattern(dbType);
return_date = TalendDate.formatDate(defaultPattern, new java.util.Date(date));
if(pattern==null||"".equals(pattern)||defaultPattern.equals(pattern)){
return return_date;
}else{
java.util.Date real_date = TalendDate.parseDate(defaultPattern, return_date);
return TalendDate.formatDate(pattern, real_date);
}
}
public abstract String getDefaultPattern(String dbType);
}
class MysqlDateParser extends DBDateParser{
private static final String DEFAULT_DATE_PATTERN="yyyy-MM-dd";
private static final String DEFAULT_DATETIME_PATTERN="yyyy-MM-dd HH:mm:ss";
private static final String DEFAULT_TIMESTAMP_PATTERN="yyyy-MM-dd HH:mm:ss";
private static final String DEFAULT_TIME_PATTERN="HH:mm:ss";
private static final String DEFAULT_YEAR_PATTERN="yyyy";
public synchronized String getDefaultPattern(String dBType) {
String defaultPattern="";
if("DATE".equals(dBType)){
defaultPattern = DEFAULT_DATE_PATTERN;
}else if("DATETIME".equals(dBType)){
defaultPattern = DEFAULT_DATETIME_PATTERN;
}else if("TIMESTAMP".equals(dBType)){
defaultPattern = DEFAULT_TIMESTAMP_PATTERN;
}else if("TIME".equals(dBType)){
defaultPattern = DEFAULT_TIME_PATTERN;
}else if("YEAR".equals(dBType)){
defaultPattern = DEFAULT_YEAR_PATTERN;
}
return defaultPattern;
}
}