2010-04-22 132 views
1

我希望能夠在我的應用程序中爲最近的日期顯示「today」和「yesterday」。我有一個當前正在使用的日期格式化程序來顯示日期(從數據記錄中檢索),並將繼續使用這個任務超過幾天。我真的很喜歡iPhone中的短信應用程序顯示最近消息的日期並希望模擬此消息的方式。如何將時間戳轉換爲用戶友好的時間字符串

我必須使用的時間戳是在手機從其下載數據記錄的服務器上生成的。因此,所有時間都是在UTC(即GMT)時間生成的。

我一直在擺弄這一段時間,我設計的解決方案看起來非常囉嗦。

任何人都可以建議如何實現一個可以做到這一點的方法嗎?

乾杯 - 史蒂夫。

回答

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 
相關問題