как отформатировать `20134859` в` 20 - 13: 48: 59` - PullRequest
0 голосов
/ 21 июля 2011

Есть ли хороший (возможно, одна строка) способ форматирования

20134859 в 20 - 13:48:59 ??

Я начал с "20134859".unpack('a2a*').join(' - '), но я не знаю, какчтобы заняться :, я подумал, можно ли или как разделить и присоединить (':') ко второму элементу, который возвращается из распакованного.Все в одной строке.

это работает, но я уверен, что есть что-то, что мне понравится больше

s = "20134859"
"#{s[0,2]} - #{s[2,2]}:#{s[4,2]}:#{s[6,2]}" 

Ответы [ 3 ]

2 голосов
/ 21 июля 2011
irb(main):001:0> "%s - %s:%s:%s"%"20134859".unpack('a2'*4)
=> "20 - 13:48:59"

Или с scan, заимствованным у DigitalRoss

irb(main):002:0> "%s - %s:%s:%s"%"20134859".scan(/../)
=> "20 - 13:48:59"
2 голосов
/ 21 июля 2011

Мне больше нравится ваш ответ, но вы можете попробовать оператор % в строках и посмотреть, понравится ли вам это больше.Просто мысль.Это делает общую строку формата более заметной.

1 голос
/ 21 июля 2011
'20134859'.scan(/../).join(':').sub ':',' - '
...