格式化TimeSpan而不将其转换为字符串

t_plusplus

无论如何,有没有使用这种方法来格式化TimeSpan对象的格式:

TimeSpan timeSpan = new TimeSpan(1,1,0);

var formattedTimeSpan = timeSpan.ToString(@"hh\:mm");

提出这个问题的目的是,我实际上想执行上述操作,但不以字符串结尾。因为我仍然需要将格式化输出作为TimeSpan而不是字符串来使用。TimeSpan格式化后将其强制转换回a ,则默认将其重新格式化为有害格式hh:mm:ss

更新以回复@Idle_Mind以显示问题的基础:

这一切都在MVC项目中。我正在尝试生成一个时间选择器下拉列表,该列表将在@ Html.DropDownListFor标记中使用。

问题是下拉列表项以hh:mm:ss的格式显示。我不想使用ToString()对其进行格式化,因为我不想将模型属性类型从TimeSpan更改为String。该属性需要保持其原始类型的TimeSpan,否则进行此更改将导致大量回归。

OK-编码讨论在这里:

这就是我生成下拉列表项的方式:

/// <summary>
/// Provides a listItems of opening hours to use in an HTML DropDownListFor helper. 
/// </summary>
/// <param name="slotObject"></param>
/// <returns></returns>
public static List<SelectListItem> GetOpeningHours(TimeSpan time)
{
    // These could be later exposed in the webconfig if needed.
    var startTime = new TimeSpan(7, 0, 0);
    var closingTime = new TimeSpan(22,0,0);
    var incrementer = new TimeSpan(0, 15, 0);

    var timesList = new List<TimeSpan>();

    var newTime = startTime.Add(incrementer);

    for (TimeSpan i = startTime; i<closingTime; i+=incrementer)
    {
        timesList.Add(TimeSpan.Parse(i.Add(incrementer).ToString(@"hh\:mm")));
    }

    return GetDropDownList(timesList, time);
}

/// <summary>
/// Gets List Items in Text only, instead of a combination of text and value.
/// </summary>
/// <param name="selectOptions"></param>
/// <param name="selectedOption"></param>
/// <returns></returns>
private static List<SelectListItem> GetDropDownList(List<TimeSpan> selectOptions, TimeSpan selectedOption)
{
    var listItems = new List<SelectListItem>();

    foreach (var option in selectOptions)
    {
        listItems.Add(new SelectListItem
        {
            Text = option.ToString(),
            Selected = TimeSpan.Compare(option, selectedOption) == 0
        });
    }
    return listItems;
}

这就是我在Razor中使用它的方式

@Html.DropDownListFor(x => x.StartFrom, Website.ViewModels.ViewHelpers.OpeningTimesList.GetOpeningHours(Model.StartFrom), new { @class = "form-control" })

它是这样显示的:

在此处输入图片说明

问题再次出现:

我想停止这种丑陋的展示。我现在正在考虑更新上面的代码以显示两个项目:一个用于DropdownListItem文本(它包含字符串格式的格式化字符串),另一个用于Value(实际上是TimeSpan)-我认为这应该有效,但是让我知道不会吧;我将不胜感激。

我将用结果更新此内容。

非常感谢。

CodeCaster

您不能“格式化”对象。打印时会发生格式化。因此,只要timeSpan在需要的地方继续使用您的实例TimeSpan,最后调用.ToString()即可对其进行格式打印。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字符串转换为 DateTime 格式而不将其转换为您的本地时间

来自分类Dev

javascript数组转换为格式化字符串

来自分类Dev

如何格式化一些XML并将其转换为包含各行的字符串数组

来自分类Dev

格式化字符串%,而不将值乘以100

来自分类Dev

字符串格式化可能的字符串加倍或将整数转换为整数

来自分类Dev

C#秒以字符串格式转换为TimeSpan

来自分类Dev

是否可以使用 Python 在 JSON 中将日期写为 DateTime 格式而不将其转换为字符串

来自分类Dev

将joda-time秒转换为格式化的时间字符串

来自分类Dev

将日期时间转换为格式化的时间字符串

来自分类Dev

将日期时间转换为格式化的时间字符串

来自分类Dev

Python-使用格式化程序作为参数转换为字符串

来自分类Dev

如何在C ++中将格式化的字符串HH:MM:SS转换为秒

来自分类Dev

在javascript中将数组转换为格式化的字符串

来自分类Dev

将DataRow中的DateTime转换为格式化的日期字符串

来自分类Dev

如何将日期转换为格式化的字符串

来自分类Dev

Python列表元素与转换为元组以进行字符串格式化

来自分类Dev

将格式化的字符串转换为2D数组

来自分类Dev

PHP将时间,日,月和年转换为格式化的字符串

来自分类Dev

如何将对象键和值转换为格式化的字符串?

来自分类Dev

在Java中将字符串转换为格式化日期

来自分类Dev

将month int值转换为格式化的字符串

来自分类Dev

如何将Linq.IEnumerable(Of String)转换为格式化的字符串

来自分类Dev

将系统时间int转换为格式化的时间字符串?

来自分类Dev

如何格式化给定的时间字符串并转换为日期/时间对象

来自分类Dev

在 php 中将纪元时间斜坡转换为格式化的日期字符串

来自分类Dev

将播放时间转换为格式化字符串 Javascript

来自分类Dev

将日期字符串转换为数组中的日期格式化程序

来自分类Dev

无法将格式化字符串转换为 LocalDateTime

来自分类Dev

时间格式化和从字符串转换

Related 相关文章

  1. 1

    将字符串转换为 DateTime 格式而不将其转换为您的本地时间

  2. 2

    javascript数组转换为格式化字符串

  3. 3

    如何格式化一些XML并将其转换为包含各行的字符串数组

  4. 4

    格式化字符串%,而不将值乘以100

  5. 5

    字符串格式化可能的字符串加倍或将整数转换为整数

  6. 6

    C#秒以字符串格式转换为TimeSpan

  7. 7

    是否可以使用 Python 在 JSON 中将日期写为 DateTime 格式而不将其转换为字符串

  8. 8

    将joda-time秒转换为格式化的时间字符串

  9. 9

    将日期时间转换为格式化的时间字符串

  10. 10

    将日期时间转换为格式化的时间字符串

  11. 11

    Python-使用格式化程序作为参数转换为字符串

  12. 12

    如何在C ++中将格式化的字符串HH:MM:SS转换为秒

  13. 13

    在javascript中将数组转换为格式化的字符串

  14. 14

    将DataRow中的DateTime转换为格式化的日期字符串

  15. 15

    如何将日期转换为格式化的字符串

  16. 16

    Python列表元素与转换为元组以进行字符串格式化

  17. 17

    将格式化的字符串转换为2D数组

  18. 18

    PHP将时间,日,月和年转换为格式化的字符串

  19. 19

    如何将对象键和值转换为格式化的字符串?

  20. 20

    在Java中将字符串转换为格式化日期

  21. 21

    将month int值转换为格式化的字符串

  22. 22

    如何将Linq.IEnumerable(Of String)转换为格式化的字符串

  23. 23

    将系统时间int转换为格式化的时间字符串?

  24. 24

    如何格式化给定的时间字符串并转换为日期/时间对象

  25. 25

    在 php 中将纪元时间斜坡转换为格式化的日期字符串

  26. 26

    将播放时间转换为格式化字符串 Javascript

  27. 27

    将日期字符串转换为数组中的日期格式化程序

  28. 28

    无法将格式化字符串转换为 LocalDateTime

  29. 29

    时间格式化和从字符串转换

热门标签

归档