Take the 2-minute tour ×
Code Review Stack Exchange is a question and answer site for peer programmer code reviews. It's 100% free, no registration required.

I was refactoring some code and found this:

DateTime CurrentDateTime = System.now();
Datetime ESTDate = Datetime.newInstance(CurrentDateTime.year(),CurrentDateTime.month(),CurrentDateTime.day(),CurrentDateTime.hour(),CurrentDateTime.minute(),CurrentDateTime.second());
String myDateFormat = ESTDate.format('yyyy-MM-dd hh:mm:ss');
String myDate = myDateFormat.replace(' ', 'T');
object1.birthDate = myDate;

And I changed it to

object1.birthDate = datetime.now().format('yyyy-MM-dd\'T\'hh:mm:ss');

CurrentDateTime isn't used anywhere just in those four lines. How a programmer can even do that? Or WHY?

share|improve this question
3  
What's language is that? –  Cyrille Ka Feb 11 '13 at 22:30
    
@CyrilleKarmann - Probably C# (or other .NET); DateTime is the standard 'timestamp' type, and System.Now is the 'current timestamp' property. Personally, though, I'm a little suspicious of anything named object1, and storing the time for a birthdate (while technically people are born at a particular 'instant', nobody ever thinks of them that ways - it tends to be the 'local calendar day'). That, and outputting it as a formatted string. It looks like there may have been an attempt to deal with timezones, but I don't see anything that actually references them, so... –  Clockwork-Muse Feb 11 '13 at 23:32
    
@Clockwork-Muse no, this is not C#. apex-code is a programming language for Salesforce. –  codesparkle Feb 13 '13 at 9:38
    
@Clockwork-Muse imagine that instead birthDate there is a field named f1 -> object1.f1 = ... –  Chiz Feb 18 '13 at 11:22
    
@Chiz - Ouch. Is there nothing you can do to get better names for things? I'd be "Spindle, Fold, and Mutilate"-ing someone who tried that on regular production code... –  Clockwork-Muse Feb 18 '13 at 16:25

1 Answer 1

up vote 3 down vote accepted

The programmer probably didn't understand how quoting works in DateTime.format() - just couldn't get the 'T' to appear in the string, so bailed, put the space there and replaced it. Creating ESTDate from CurrentDateTime is particularly weird, though!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.