转换日期字符串,以指定Pharo 8中的模式

问题描述 投票:2回答:1

['04/30/2019' asDate有效,但是'30/04/2019' asDate失败,因为该日期的日期格式为'dd/MM/yyyy'格式。

如何在Pharo 8中指定其他时间格式?

date smalltalk pharo
1个回答
2
投票

有几种方法可以从Date获取String。您的情况如下:

   Date readFrom: '30/4/2019' readStream pattern: 'dd/m/yyyy'

模式中的'm'也将匹配两位数的月份索引。如果您使用'mm',则您的月份索引必须有两位数字,例如'04'

DateAnTime没有类似内容。但是,您可以执行以下操作:

   | stream |
   stream := '30/4/2019 18:11:03' readStream.
   date := Date readFrom: (stream upTo: $ ) readStream pattern: 'dd/m/yyyy'.
   time := Time readFrom: stream.
   ^DateAndTime date: date time: time.

这将流的第一部分(直到空格)用作日期,然后继续时间。请注意,流留在空格旁边的字符处,该字符应该是时间的开始位置。

© www.soinside.com 2019 - 2024. All rights reserved.