Time Formatting

Hi there,
I have a quick question about time formatting. I’m trying to display a roDatetime with just the time formatting, but that doesn’t seem to be one of the four options available to the asDateString() function. So instead I’m using the getHours() and getMinutes() functions to create it myself (doing my own check to convert the 24 hour clock to am/pm). However, when I print out the return value for these functions in the terminal, or explicitly convert them to strings for use in the short description field, there is always a space before the actual integer. Is this a bug or expected behavior?

Thanks,
Kaitlin

It’s expected, and is actually documented somewhere in the docs. I believe it’s a placeholder for a sign. If you use the .ToStr() method instead, it won’t add the space. You can also use the .Trim() method on the string to strip the white space.

Also, if you’re interested, here are two utility functions I use for converting seconds to elapsed time strings. They could be fairly easily modified to return 12h or 24h time strings.

This one returns a string in the Roku time format (ex. 1h 22m 13s)…

Function GetDurationString( TotalSeconds = 0 As Integer ) As String
	datetime = CreateObject( "roDateTime" )
	datetime.FromSeconds( TotalSeconds )
		
	hours = datetime.GetHours().ToStr()
	minutes = datetime.GetMinutes().ToStr()
	seconds = datetime.GetSeconds().ToStr()
	
	duration = ""
	If hours <> "0" Then
		duration = duration + hours + "h "
	End If
	If minutes <> "0" Then
		duration = duration + minutes + "m "
	End If
	If seconds <> "0" Then
		duration = duration + seconds + "s"
	End If
	
	Return duration
End Function

And this one returns a string in a more traditional format (ex. 01:22:13)…

Function GetDurationStringStandard( TotalSeconds = 0 As Integer ) As String
	datetime = CreateObject( "roDateTime" )
	datetime.FromSeconds( TotalSeconds )
		
	hours = datetime.GetHours().ToStr()
	minutes = datetime.GetMinutes().ToStr()
	seconds = datetime.GetSeconds().ToStr()
	
	If Len( hours ) = 1 Then
		hours = "0" + hours
	End If
	If Len( minutes ) = 1 Then
		minutes = "0" + minutes
	End If
	If Len( seconds ) = 1 Then
		seconds = "0" + seconds
	End If
	
	If hours <> "00" Then
		Return hours + ":" + minutes + ":" + seconds
	Else
		Return minutes + ":" + seconds
	End If
End Function

Ah that makes sense. I didn’t realize there was a different implementation for Str() and toStr(). Thanks a bunch!