Skip to main content
Announcements
A fresh, new look for the Data Integration & Quality forums and navigation! Read more about what's changed.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Get last modified date of a file and perform action

Hi,
 I am newbee and trying to understand how this Long time format  of the tfileproperties "mtime" and sting format of mtime_string can be compared with current time. I gone through the forum but nothing help me. This date comparison is taking hell lot of time.
 
 
My Requirement
   I need to check the last modified date of the file and if it is equal to current date then copy this file and transform to XML file form.
Here i have done the "copy the file"" and "transform to XML file actions"
But Only thing i need to do is verify the file last modified time and if it is equal to current date then perform the action.
Any help is really appreciates since i have been trying this for 2 days still the conversion is giving me lot of trouble.
I tried to use the mtime and mtime_string of tfileproperties and nothing is helping me. There should be simple way but not able to get it.
Attached the jobdesign
The mtime_string throwing the below error.
Starting job Testing1 at 22:06 12/05/2015.
connecting to socket on port 3999
connected
java.lang.NumberFormatException: For input string: "Tue "
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at routines.system.FastDateParser$DateParser.parse(FastDateParser.java:127)
    at java.text.DateFormat.parse(Unknown Source)
    at routines.TalendDate.parseDate(TalendDate.java:850)
    at routines.TalendDate.parseDate(TalendDate.java:808)
    at etl.testing1_0_1.Testing1.tFileProperties_1Process(Testing1.java:994)
    at etl.testing1_0_1.Testing1.runJobInTOS(Testing1.java:1401)
    at etl.testing1_0_1.Testing1.main(Testing1.java:1258)
Exception in component tMap_1
java.lang.RuntimeException: java.text.ParseException: Unparseable date: "Tue May 12 16:51:20 MDT 2015"
    at routines.TalendDate.parseDate(TalendDate.java:864)
    at routines.TalendDate.parseDate(TalendDate.java:808)
    at etl.testing1_0_1.Testing1.tFileProperties_1Process(Testing1.java:994)
    at etl.testing1_0_1.Testing1.runJobInTOS(Testing1.java:1401)
    at etl.testing1_0_1.Testing1.main(Testing1.java:1258)
disconnected
Caused by: java.text.ParseException: Unparseable date: "Tue May 12 16:51:20 MDT 2015"
    at java.text.DateFormat.parse(Unknown Source)
    at routines.TalendDate.parseDate(TalendDate.java:850)
    ... 4 more
Job Testing1 ended at 22:06 12/05/2015.
Labels (4)
4 Replies
Anonymous
Not applicable
Author

The Jobdesign
tfileProperties-->tfilterColumn-->tmap--LogRow
  0683p000009MDVP.png
the tMap
row2                                 modified_output
mtime_string  -->  TalendDate.parseDate("yyyy-MM-dd", row2.mtime_string)
0683p000009MDO4.png
I am doing anything wrong?  Or is anyother easy way to do this.
Anonymous
Not applicable
Author

you can use below expression in tMap. 
new Date(row2.mtime) 

it will give Date object which you can format if needed.
Anonymous
Not applicable
Author

Thanks for the reply
I try modified the tmap for mtime but gave me the error.

connecting to socket on port 3691
connected
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method Date(Long) is undefined for the type Testing1
    at etl.testing1_0_1.Testing1.tFileProperties_1Process(Testing1.java:958)
    at etl.testing1_0_1.Testing1.runJobInTOS(Testing1.java:1364)
    at etl.testing1_0_1.Testing1.main(Testing1.java:1221)
Job Testing1 ended at 10:51 13/05/2015.

I also tried the same for mtime_string gave the below error.
Starting job Testing1 at 10:59 13/05/2015.
connecting to socket on port 3958
connected
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method Date(String) is undefined for the type Testing1
    at etl.testing1_0_1.Testing1.tFileProperties_1Process(Testing1.java:1004)
    at etl.testing1_0_1.Testing1.runJobInTOS(Testing1.java:1410)
    at etl.testing1_0_1.Testing1.main(Testing1.java:1267)
Job Testing1 ended at 10:59 13/05/2015.
If you can give me the detail step how to configure that would be really great.
Anonymous
Not applicable
Author

Umesh, It was my mistake.  It works fine with new Date(row2.mtime)
row2                        modified_output
mtime  -->  new Date(row2.mtime) 
Got the below result
Starting job Testing1 at 04:17 15/05/2015.
connecting to socket on port 3454
connected
2015-05-03
disconnected
Job Testing1 ended at 04:17 15/05/2015.
----------------
Now i get the Date. Can you help me to compare this output with currentDate. 
What i want is to use the "Run If " a subjob if the CurrentDate is equal with the above output.  How can i achieve this ?