默认情况下,C#中的DateTime类型以AM / PM格式给出时间,但我想返回24小时时间格式,同时我想返回此DateTime类型而不是下面的字符串,
// sample data:
val processed = sc.parallelize(List(
(111,List(List(1473163148L, "abc"))),
(111,List(List(1473163143L,"def"))),
(111,List(List(1473163143L,"abd"))),
(111,List(List(1473163139L,"asd"))),
(111,List(List(1473163696L,"rtf"))),
(111,List(List(1473163700L,"rgd"))),
(111,List(List(1473168932L,"dmf"))))
)
// first - find the lowest timsestamp:
// if input isn't ordered:
val firstTimestamp: Long = processed.values.map { case List((l: Long) :: _) => l }.min()
// if input is sorted by timestamp:
val firstTimestamp: Long = processed.first()._2.head.head.toString.toLong
def createGroups(l: List[List[Any]]): Iterable[List[List[Any]]] = {
// divide the DELTA between each timestamp and first one by 30 minutes to find bucket:
l.groupBy(t => (firstTimestamp - t.productElement(0).toString.toLong) / (30*60)).values
}
// continue as you did:
val grouped: RDD[(Int, List[List[Any]])] = processed.reduceByKey((x, y) => x ++ y)
val separated: RDD[(Int, List[List[Any]])] = grouped.flatMap {
case (k, l) => createGroups(l).map(sublist => (k, sublist))
}
separated.foreach(println)
// prints:
// (111,List(List(1473168932, dmf)))
// (111,List(List(1473163148, abc), List(1473163143, def), List(1473163143, abd), List(1473163139, asd), List(1473163696, rtf), List(1473163700, rgd)))
而不是“string timeString24Hour”我想要“DateTime timeString24Hour”
如何实现这一目标???
答案 0 :(得分:2)
DateTime localTime = DateTime.Now;
这是24小时格式的DateTime类型。 DateTime是一个数字,表示自1970年1月1日以来的所有毫秒数。从中,您可以转换为任何时间段或任何时间段。但是,如果你想使用DateTime,那么在你需要使用
之前,它没有固有的格式DateTime.Hours/DateTime.DayOfWeek/DateTime.Subtract(antoherDateTime).TotalSeconds
如果您需要24小时格式的时间。只需使用:
DateTime.ToString("HH:mm")
答案 1 :(得分:1)
默认情况下,{strong> {/ 1>}在您的文化中的AM / PM中显示。
因为开发环境总是使用当前文化来显示DateTime
但这仅仅是它的显示方式。 DateTime
中的值是相同的 - 与文化无关。
顺便DateTime
无效,因为"mm/dd/yyyy HH:mm:ss"
是分钟而mm
是月份
答案 2 :(得分:0)
我认为你想要像String.Format
这样的东西:
DateTime localTime = DateTime.Now;
string timeString24Hour = String.Format("{0:dd-MM-yyyy HH:mm:ss.fff}", localTime);
或更短:
string timeString24Hour = String.Format("{0:dd-MM-yyyy HH:mm:ss.fff}", DateTime.Now);
您可以在此处找到信息:MSDN: Custom Date and Time Format Strings