我已经花了好几个小时仍然无法理解:
Dim unix_time_at_midnight As Long
DateTime.DateFormat = "MM/dd/yyyy"
unix_time_at_midnight = DateTime.DateParse(DateTime.Date(unix_time*1000))/1000
,其中unix_time_at_midnight和unix_time都是长值。我理解DateTime.DateParse
除了字符串,并将其转换为日期时间。(DateTime.Date(unix_time*1000))/1000
返回什么?它在Java中的等价是什么?要求是获得自GMT午夜以来的秒数,我已经成功地在Java中实现了它。然而,我想理解这行用VB.net编写的代码
编辑:这个方法是用Basic4Android编写的,可能比vb.net构成了更多的库。然而,我已经研究了每一个细节,但无法理解。如果你能详细说明的话,我将不胜感激。
看这个:
DateTime.Date(unix_time*1000)
文档说:
Date (Ticks As Long) As String
返回日期的字符串表示形式(存储为刻度)。日期格式可以通过关键字DateFormat设置。
那部分返回一个字符串表示日期。
然后使用DateTime.DateParse
,文档如下:
DateParse (Date As String) As Long
解析给定的日期字符串并返回其刻度表示。
总的来说,这似乎是将刻度乘以1000,转换为不包含小时信息的字符串,该字符串被解析回除以1000的刻度。
需要注意的重要一点是,前面行上设置的DateFormat
只包含日期格式,没有小时/分钟/秒和更小的时间单位。这意味着返回的字符串实际上代表该日期的午夜。