【问题标题】:How can I convert a timestamp to a user-friendly time string如何将时间戳转换为用户友好的时间字符串
【发布时间】:2010-04-22 20:01:40
【问题描述】:

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

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

我一直在摆弄这个问题,我设计的解决方案似乎非常冗长。

谁能建议如何实现一个可以做到这一点的方法?

干杯 - 史蒂夫。

【问题讨论】:

    标签: iphone date format


    【解决方案1】:

    如果这是一个网络应用程序,您可能会发现 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
    

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多