我希望能够在我的申请中提供最近日期的“今天”和“昨天”。我目前正在使用日期格式化程序来显示日期(从数据记录中检索),并将继续使用它超过几天。我真的很喜欢iPhone中的短信应用程序显示最近消息的日期,并希望模仿它。
我必须使用的时间戳是在手机从中下载数据记录的服务器上生成的。因此,所有时间都在UTC(即GMT)时间生成。
我一直在努力解决这个问题,我设计的解决方案似乎非常啰嗦。
有人可以建议如何实现可以做到这一点的方法吗?
干杯 - 史蒂夫。
答案 0 :(得分:4)
如果这是一个网络应用,您可能会发现PrettyDate有用。我制作了一个可以轻松转换为另一种语言的vb.net实现:
Public Function formatDate(ByVal time As DateTime) As String
Dim datediff As TimeSpan = Now.Subtract(time)
Dim days As Integer = datediff.TotalDays
If days < 1 Then
Dim seconds As Integer = datediff.TotalSeconds
Select Case seconds
Case 0 To 60
Return "just now"
Case 61 To 120
Return "1 minute ago"
Case 121 To 3600
Return Math.Floor(seconds / 60) & " minutes ago"
Case 3601 To 7200
Return "1 hour ago"
Case 7201 To 86400
Return Math.Floor(seconds / 3600) & " hours ago"
End Select
ElseIf days < 31 Then
Select Case days
Case 1
Return "yesterday"
Case 2 To 7
Return days & " days ago"
Case Is > 7
Return Math.Ceiling(days / 7) & " weeks ago"
End Select
Else : Return time.ToString("MM/dd/yyyy")
End If
End Function