temperature reading and clock in one line on LCD?

I am using a 16 x 1 LCD and I want to display both the temperature reading and the clock on one line(temp on the left, clock on right side). However, the trouble I’m having with my code is that the right side of the display would blink on and off, while the left side of the display would also blink on and turn off, back and forth. How do I keep both of them to stay on ?

This is what I have so far:

#include <LiquidCrystal440.h>

#include <OneWire.h>
#include <DallasTemperature.h>
#include <DateTime.h>
#include <DateTimeStrings.h>

#define dt_SHORT_DAY_STRINGS
#define dt_SHORT_MONTH_STRINGS

#define ONE_WIRE_BUS 9

OneWire oneWire(ONE_WIRE_BUS);
int heater;
DallasTemperature sensors(&oneWire);

DeviceAddress insideThermometer = { 0x10, 0x37, 0xBC, 0x1E, 0x02, 0x08, 0x00, 0xE9 };

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int LED = 10;
void setup()
{ DateTime.sync(DateTime.makeTime(0, 4, 5, 16, 10, 2010));
  pinMode(LED, OUTPUT);
  // Start up the library
  sensors.begin();
  // set the resolution to 10 bit (good enough?)
  sensors.setResolution(insideThermometer, 10);
}



void loop()
{ 
  if(DateTime.available()) {
unsigned long prevtime = DateTime.now();
while( prevtime == DateTime.now() ) // wait for the second to rollover
;

DateTime.available(); //refresh the Date and time properties
digitalClockDisplay( ); // update digital clock
}
  sensors.requestTemperatures();
  printTemperature(insideThermometer);
  
  if (heater ==1){
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
 
}

void printDigits(byte digits){
// utility function for digital clock display: prints preceding colon and leading 0
lcd.print(":");
if(digits < 10)
lcd.print('0');
lcd.print(digits,DEC);
}

void digitalClockDisplay(){

lcd.begin(8,2);
lcd.setCursor(7,0);   //displays right side
lcd.print("");




//lcd.print(" ");
if(DateTime.Hour <10)
lcd.setCursor(7,0); //right side of display

// digital clock display of current time

lcd.print(DateTime.Hour,DEC);
printDigits(DateTime.Minute);
printDigits(DateTime.Second);
}
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  lcd.begin(8,2);
  lcd.setCursor(0,0);  //left side of display
  lcd.print("");
  lcd.print(DallasTemperature::toFahrenheit(tempC));  
 
 
    
  if (DallasTemperature::toFahrenheit(tempC) < 78.00)
  heater = 1;
  else
  heater = 0;
}

I think you are calling lcd.begin() too often. Shouldn't that only be called once in setup()?

-face palm-

Thanks