首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP7 -格式化DateTime。多么?

WP7 -格式化DateTime。多么?
EN

Stack Overflow用户
提问于 2013-11-27 10:58:50
回答 1查看 180关注 0票数 0

我想知道是否有一种将日期时间格式化为我想要的方式的方法。因此,基本上我的场景是,当我的应用程序从隔离存储中获取一个文件时,它会将日期显示为“小时:分钟”。我想要它,以便当应用程序得到日期,它显示为“小时:日期”,但一天后,它显示它为“日/月”,我怎么能这样做呢?

这就是我得到的:

代码语言:javascript
复制
Dim Storage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
        Dim directory As String = "./MyNote/SavedNotes/*.*"
        Dim filenames As String() = Storage.GetFileNames(directory)
        Dim dataSource As New List(Of SampleData)()
        For Each filename As String In filenames
            Dim ISF As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
            Dim FS As IsolatedStorageFileStream = ISF.OpenFile("MyNote/SavedNotes/" & filename, FileMode.Open, FileAccess.Read)
            Using SR As New StreamReader(FS)
                Dim FTime As String = Storage.GetCreationTime("MyNote/SavedNotes/" & filename).ToString("d/M ddd")
                Dim DATESS As String = SR.ReadLine
                Dim ReadName As String = SR.ReadLine
                dataSource.Add(New SampleData() With {.FileNameX = filename, .Description = ReadName, .FileTime = FTime})
            End Using
            SavedNotesList.ItemsSource = dataSource
        Next

多少有点像本地消息应用程序。日期格式取决于接收消息的时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-27 13:21:38

您可能需要为这些.你手机上的日期和时间的格式取决于你手机的文化和本地化。下面代码行中的一些内容是一个开始。如果您需要VB示例,请告诉我,日期格式文档可以找到这里

代码语言:javascript
复制
        /// <summary>
    /// Get's a date description
    /// </summary>
    /// <param name="dateTime">
    /// The date to compare
    /// </param>
    /// <returns>
    /// A date description.
    /// </returns>
    public string GetRelativeTime(DateTime dateTime)
    {
        var timeMode = GetTimeMode(dateTime);

        switch (timeMode)
        {
          case TimeMode.Seconds:
          case TimeMode.Minutes:
          case TimeMode.Hours:
              return dateTime.ToString("HH:mm");
            default:
              return dateTime.ToString("dd/MM");;
        }
    }

    /// <summary>
    /// Gets a date mode.
    /// </summary>
    /// <param name="dateTime">
    /// The date to test.
    /// </param>
    /// <returns>
    /// A date mode.
    /// </returns>
    public TimeMode GetTimeMode(DateTime dateTime)
    {
        var timeSpan = DateTime.Now - dateTime;

        if (timeSpan < TimeSpan.FromSeconds(60)) return TimeMode.Seconds;
        if (timeSpan < TimeSpan.FromMinutes(60)) return TimeMode.Minutes;
        if (timeSpan < TimeSpan.FromHours(24)) return TimeMode.Hours;
        if (timeSpan <= TimeSpan.FromDays(30)) return TimeMode.Days; //this can be tricky for days in month, adapt as appropriate.
        if (timeSpan.Days <= 365) return TimeMode.Months; //adapt as apropriate for leap years.

        return TimeMode.Years;
    }

    /// <summary>
    /// Date Modes.
    /// </summary>
    public enum TimeMode
    {
        Seconds,
        Minutes,
        Hours,
        Days,
        Weeks,
        Months,
        Years
    }

用以下方法进行测试

代码语言:javascript
复制
MessageBox.Show(GetRelativeTime(DateTime.Now.Subtract(new TimeSpan(0, 0, 0, 20)))); //20 seconds ago
        MessageBox.Show(GetRelativeTime(DateTime.Now.Subtract(new TimeSpan(0, 0, 20, 0)))); //20 minutes ago
        MessageBox.Show(GetRelativeTime(DateTime.Now.Subtract(new TimeSpan(0, 20, 0, 0)))); //20 hours ago
        MessageBox.Show(GetRelativeTime(DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0)))); //1 day ago
        MessageBox.Show(GetRelativeTime(DateTime.Now.Subtract(new TimeSpan(2, 0, 0, 0)))); //2 days ago

编辑:添加VB代码

代码语言:javascript
复制
Dim Storage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
    Dim directory As String = "./MyNote/SavedNotes/*.*"
    Dim filenames As String() = Storage.GetFileNames(directory)
    Dim dataSource As New List(Of SampleData)()
    For Each filename As String In filenames
        Dim ISF As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
        Dim FS As IsolatedStorageFileStream = ISF.OpenFile("MyNote/SavedNotes/" & filename, FileMode.Open, FileAccess.Read)
        Using SR As New StreamReader(FS)
            'Modified code
            Dim FTime As String = GetRelativeTime(Storage.GetCreationTime("MyNote/SavedNotes/" & filename))
            Dim DATESS As String = SR.ReadLine
            Dim ReadName As String = SR.ReadLine
            dataSource.Add(New SampleData() With {.FileNameX = filename, .Description = ReadName, .FileTime = FTime})
        End Using
        SavedNotesList.ItemsSource = dataSource
    Next

“新代码”

代码语言:javascript
复制
''' <summary>
''' Get's a date description
''' </summary>
''' <param name="dateTime">
''' The date to compare
''' </param>
''' <returns>
''' A date description.
''' </returns>
Public Function GetRelativeTime(dateTime As DateTime) As String
Dim myTimeMode = GetTimeMode(dateTime)

Select Case myTimeMode
    Case TimeMode.Seconds, TimeMode.Minutes, TimeMode.Hours
        Return dateTime.ToString("HH:mm")
    Case Else
        Return dateTime.ToString("dd/MM")
End Select
End Function

''' <summary>
''' Gets a date mode.
''' </summary>
''' <param name="dateTime">
''' The date to test.
''' </param>
''' <returns>
''' A date mode.
''' </returns>
Public Function GetTimeMode(timeToTest As DateTime) As TimeMode
Dim timeDifference = DateTime.Now - timeToTest

If timeDifference < TimeSpan.FromSeconds(60) Then
    Return TimeMode.Seconds
End If
If timeDifference < TimeSpan.FromMinutes(60) Then
    Return TimeMode.Minutes
End If
If timeDifference < TimeSpan.FromHours(24) Then
    Return TimeMode.Hours
End If
If timeDifference <= TimeSpan.FromDays(30) Then
    Return TimeMode.Days
End If
'this can be tricky for days in month, adapt as appropriate.
If timeDifference.Days <= 365 Then
    Return TimeMode.Months
End If
'adapt as apropriate for leap years.
Return TimeMode.Years
End Function

''' <summary>
''' Date Modes.
''' </summary>
Public Enum TimeMode
Seconds
Minutes
Hours
Days
Weeks
Months
Years
End Enum
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20240593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档