如何将时间戳转换为用户友好的时间字符串

时间:2010-04-22 20:01:40

标签: iphone date format

我希望能够在我的申请中提供最近日期的“今天”和“昨天”。我目前正在使用日期格式化程序来显示日期(从数据记录中检索),并将继续使用它超过几天。我真的很喜欢iPhone中的短信应用程序显示最近消息的日期,并希望模仿它。

我必须使用的时间戳是在手机从中下载数据记录的服务器上生成的。因此,所有时间都在UTC(即GMT)时间生成。

我一直在努力解决这个问题,我设计的解决方案似乎非常啰嗦。

有人可以建议如何实现可以做到这一点的方法吗?

干杯 - 史蒂夫。

1 个答案:

答案 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