Saturday, October 20, 2012

Talend equivalent for OCONV function in Datastage (Only for time and date)

  
[The function has been developed as a routine in the Talend.]
 
package routines;

import java.text.ParseException;

public class DateConv {

 public static String oConv(int secToAdd, String format) 
                                                   throws ParseException {
 
  final String date = "31/12/1967";//31 Dec 1967
  java.util.Date returnDate = null;
  String returnString = null;
  java.text.DateFormat sdf =
  new java.text.SimpleDateFormat("dd/MM/yyyy");
  java.util.Date parsedDate = sdf.parse(date);
  java.util.Calendar now = java.util.Calendar.getInstance();
  now.setTime(parsedDate);
  
  if (format.equals("MT")) { // 02:46
   sdf = new java.text.SimpleDateFormat("HH:mm");
   now.add(java.util.Calendar.SECOND, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } else if (format.equals("MTS")) { // 02:46:40
   sdf = new java.text.SimpleDateFormat("HH:mm:ss");
   now.add(java.util.Calendar.SECOND, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } else if (format.equals("MTHS")) { // 02:46:40am
   sdf = new java.text.SimpleDateFormat("HH:mm:ssa");
   now.add(java.util.Calendar.SECOND, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate).toLowerCase();
  } else if (format.equals("MTH")) { // 02:46am
   sdf = new java.text.SimpleDateFormat("HH:mma");
   now.add(java.util.Calendar.SECOND, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate).toLowerCase();
  } else if (format.equals("MT.")) { // 02.46
   sdf = new java.text.SimpleDateFormat("HH.mm");
   now.add(java.util.Calendar.SECOND, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } else if (format.equals("D2")) { // 3 Feb 93
   sdf = new java.text.SimpleDateFormat("d MMM yy");
   now.add(java.util.Calendar.DAY_OF_MONTH, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } else if (format.equals("D/E")) { // 3/2/1993
   sdf = new java.text.SimpleDateFormat("d/M/yyyy");
   now.add(java.util.Calendar.DAY_OF_MONTH, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } else if (format.equals("DI")) { // 3/2/1993
   sdf = new java.text.SimpleDateFormat("d/M/yyyy");
   now.add(java.util.Calendar.DAY_OF_MONTH, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } else if (format.equals("D2-")) { // 2-3-93
   sdf = new java.text.SimpleDateFormat("M-d-yy");
   now.add(java.util.Calendar.DAY_OF_MONTH, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } else if (format.equals("D")) { // 31 Dec 1967
   sdf = new java.text.SimpleDateFormat("d MMM yyyy");
   now.add(java.util.Calendar.DAY_OF_MONTH, secToAdd);
   returnDate = now.getTime();
   returnString = sdf.format(returnDate);
  } 
  
  return returnString;
 }
 
 
 public static String oConv(String input, String format) 
                                                   throws ParseException {
  String returnString = null;
  java.text.DateFormat sdf = null;
  
  if (input.equalsIgnoreCase("@DATE") && 
                        format.equals("DMD[2,2]")) { //DMD[2,2]
   sdf = new java.text.SimpleDateFormat("MMdd");
   returnString = sdf.format(new java.util.Date());
  } else if (input.equalsIgnoreCase("@DATE") && 
                        format.equals("DYMD[4,2,2]")) { //DYMD[4,2,2]
   sdf = new java.text.SimpleDateFormat("yyyyMMdd");
   returnString = sdf.format(new java.util.Date());
  }
  
  return returnString;
 }
 
}
eg:
DateConv.oConv(10000, "MTHS"); // 02:46:40am
DateConv.oConv(9166, "D2"); // 3 Feb 93





Saturday, October 6, 2012

Java - removing leading zeroes from a string

 
Using Regular Expressions (regex)
String str = "00938";
System.out.println("*" + str.replaceFirst("^0+", "") + "*");
//*938*

Suppose the string contains only zeroes, then the output will be a null string. 
String str = "0000000";
System.out.println("*" + str.replaceFirst("^0+", "") + "*"); 
//**

If you want a zero to remain in the above case use another form -
String str = "0000000";
System.out.println("*" + str.replaceFirst("^0+(?!$)", "") + "*"); 
//*0*

The negative lookahead (?!$) ensures that the entire string is not matched with the regular expression ^0+.
The anchor ^ makes sure that the beginning of the input is matched. 0+ denotes zero or more zeroes (0s).

Wednesday, September 19, 2012

Galaxy Heaven!!!



A Futuristic Concept...




 


 


 



 


 



 


 



 


 

 

Contact Form

Name

Email *

Message *

The Insane Techie - Android App

Launched an android app for the blog on 07th June 2016. Get it from google play store... Tips for using the app Use in landscape mo...