The easiest way I know of formatting a string is using the string.Format method. But surprisingly, the DEF.ToString(); call (which is a TimeSpan object) does return the format hh:mm:ss, so not sure the issue is there.
Publics.JSS_FT = null;
TimeSpan DEF = System.Convert.ToDateTime(dateTimePicker2.Text) - JCM_NOW_DT;
label11.Text = string.Format("{0:00}:{1:00}:{2:00}", DEF.Hours, DEF.Minutes, DEF.Seconds);
label11.Text = string.Format("{0:00}:{1:00}:{2:00}", DEF.TotalHours, DEF.Minutes, DEF.Seconds);
Publics.JSS_FT = label11.Text;