小编jxs*_*ord的帖子

在python中转换时区的意外结果

我试图理解为什么在将时区转换为UTC时我得到这些结果:

In [74]: d1 = datetime(2007, 12, 5, 6, 30,tzinfo=pytz.timezone('US/Pacific'))
In [75]: d1
Out[75]: datetime.datetime(2007, 12, 5, 6, 30, tzinfo=<DstTzInfo 'US/Pacific' LMT-1 day, **16:07:00 STD**>)
In [76]: d1.astimezone(pytz.utc)
Out[76]: datetime.datetime(2007, 12, 5, 14, 23, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)

为什么早上6:30成为下午2:23?

另一方面,如果我使用以下方法,我得到预期的结果:

In [90]: d2 = datetime(2007, 12, 5, 6, 30)
In [91]: uspac = pytz.timezone('US/Pacific')
In [92]: d2_aware = uspac.localize(d2)
In [94]: d2_aware.astimezone(pytz.utc)
Out[94]: datetime.datetime(2007, 12, 5, 14, 30, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)

python pytz

36
推荐指数
3
解决办法
8704
查看次数

一个干净的方法将两个元组组合成一个新的scala中更大的元组?

假设我有以下元组:

scala> val t1 = Tuple2("abcd", "efg")
t1: (java.lang.String, java.lang.String) = (abcd,efg)

scala> val t2 = Tuple2(1234, "lmnop")
t2: (Int, java.lang.String) = (1234,lmnop)

scala> val t3 = Tuple3("qrs", "tuv", "wxyz")
t3: (java.lang.String, java.lang.String, java.lang.String) = (qrs,tuv,wxyz)
Run Code Online (Sandbox Code Playgroud)

是否有一种友好的方式将它们(必要时分两步)组合成一个Tuple7?我真的在寻找一个结合任意大小的元组的一般答案,并意识到由于最大元组大小的上限会有限制.我特意寻找一个元组结果,而不是一个集合.

scala scalaz

15
推荐指数
2
解决办法
1万
查看次数

相当于sbt内的scalac -print?

是否可以在sbt(0.11.2)内以交互方式在一个或多个类上运行scalac -print的等效项?

scala sbt

10
推荐指数
1
解决办法
898
查看次数

在Scala类型参数中, - >>和 - >>>是什么意思?

Heiko Seeberger在这里写了一篇关于类别理论的精彩博文:

https://hseeberger.wordpress.com/2010/11/25/introduction-to-category-theory-in-scala/

在其中,他定义了一个GenericFunctor,如下所示:

trait GenericFunctor[->>[_, _], ->>>[_, _], F[_]] {
  def fmap[A, B](f: A ->> B): F[A] ->>> F[B]
}
Run Code Online (Sandbox Code Playgroud)

我没有运气找到文档中对 - >>和 - >>>符号的文档引用.有人可以解释一下他们在做什么吗?

scala

8
推荐指数
2
解决办法
450
查看次数

我可以从scala中的重载方法获取函数吗?

假设我有两个使用相同名称和返回定义的方法,但是不同的参数:

def overload(x: Int) = x.toString
def overload(s: String) = s
Run Code Online (Sandbox Code Playgroud)

现在我想将其中一个转换为函数.如果方法没有重载,我会这样做:

val f = overload _
Run Code Online (Sandbox Code Playgroud)

但事实上,编译器正确地抱怨了一个含糊不清的引用.除了重命名其中一个之外,有没有办法让一个或另一个重载方法的功能?

谢谢!

约翰

scala

7
推荐指数
1
解决办法
327
查看次数

从scala中的DateTime中减去DateTime

我对scala和jodatime都比较陌生,但两者都给人留下了深刻的印象.我想弄清楚是否有更优雅的方法来做一些日期算术.这是一个方法:


private def calcDuration() : String = {
  val p = new Period(calcCloseTime.toInstant.getMillis - calcOpenTime.toInstant.getMillis)
  val s : String = p.getHours.toString + ":" + p.getMinutes.toString + 
      ":" + p.getSeconds.toString
  return s
}
Run Code Online (Sandbox Code Playgroud)

我将所有内容转换为字符串,因为我将它放入MongoDB,我不知道如何序列化joda持续时间或句点.如果有人知道我真的很感激答案.

无论如何,calcCloseTime和calcOpenTime方法返回DateTime对象.将它们转换为Instants是我发现的最好的方法.有没有更好的办法?

另一个问题:当小时,分钟或秒是单个数字时,结果字符串不是零填充.是否有一种简单的方法使字符串看起来像HH:MM:SS?

谢谢,约翰

scala jodatime

6
推荐指数
2
解决办法
1万
查看次数

停止系统中的所有演员而不关闭系统本身?

在Akka 2.0中,是否有一种很好的方法可以关闭路径/用户下的所有actor?例如,假设我执行以下操作:

val system = ActorSystem.create("mySystem")

system.actorOf(Props(new MyActor1), "actor1")
system.actorOf(Props(new MyActor2), "actor2")
Run Code Online (Sandbox Code Playgroud)

一段时间后,我决定要阻止系统中的所有演员.如果我理解正确的话,actor1和actor2将是路径/用户的子节点,但我没有看到一个方法,它给了我一个ActorRef子节点的迭代.还有另外一种方法吗?

scala akka

6
推荐指数
1
解决办法
1495
查看次数

使用scala的catch块的部分函数

我有一个catch块,我最后重复了一下,并发现这个SO问题确认我可以使用部分函数作为catch块(Scala 2.9的尝试有什么用例... catch generalization? 1) .

目前,我的代码如下所示:

var task = newTask("update product", "update for customer " + customerId.toString)
try {
          val vcdRouter = actorSystem.actorFor("user/supervisor/router-10.10.10.10:443")

          val vdcId = new UUID("92ddba5e-8101-4580-b9a5-e3ee6ea5718f")
          val vdcGet = sendExpect[AdminVdcType](vcdRouter, GetVdc(vdcId))
          val vdcPut = VdcPutConfig(vdcGet, c)
          val vdcPutTask = sendExpect[TaskType](vcdRouter, UpdateVdc(vdcId, vdcPut))

          task = task.copy(Progress = 100, status = SuccessType)

        } catch {
          case failure: NoResponseBodyException =>
            logger.debug("*** In putCustomerProduct, got a Left(VcdGatewayException)")
            task = task.copy(Progress = 100, status = Error, Error = Option(exceptionToError(failure, BadGateway)))

          case …
Run Code Online (Sandbox Code Playgroud)

scala

6
推荐指数
2
解决办法
2765
查看次数

通过joda找到mongodb条目DateTime范围scala/casbah

我被casbah发现难倒了.我试图在date1和date2之间从MongoDB中撤回所有文档.这是一组mongo文档的示例:

{ "_id" : NumberLong("1285248838000"), "openTime" : "Thu Sep 23 2010 06:33:58 GMT-0700 (PDT)", "closeTime" : "Thu Sep 23 2010 06:36:15 GMT-0700 (PDT)", "timeInTrade" : "00:02:17", "direction" : "Long", "size" : 1, "outcome" : "Loss" }
{ "_id" : NumberLong("1285595711000"), "openTime" : "Mon Sep 27 2010 06:55:11 GMT-0700 (PDT)", "closeTime" : "Mon Sep 27 2010 06:57:37 GMT-0700 (PDT)", "timeInTrade" : "00:02:26", "direction" : "Short", "size" : 1, "outcome" : "Win"}
{ "_id" : NumberLong("1285594773000"), "openTime" : "Mon Sep 27 2010 …
Run Code Online (Sandbox Code Playgroud)

scala jodatime mongodb

5
推荐指数
1
解决办法
1915
查看次数

sbt跳过子项目中的测试,除非从该项目中运行?

我有一个带有多个子项目的SBT项目。除非我明确执行“; project xyz; test-only”之类的操作,否则其中一个子项目具有我不希望运行的测试。因此,如果我的项目结构是:

主main / abc main / def main / xyz

理想情况下,在main中运行“ test”将在main,main / abc和main / def项目中执行任何测试,但不会在main / xyz中执行。

我试图在构建文件中为主类添加一个测试过滤器,以排除main / xyz中的所有测试(按包名),然后在main / xyz项目中添加一个单独的build.sbt文件以将其添加回去,但这仍然导致从顶级项目执行测试...

scala sbt

5
推荐指数
1
解决办法
1265
查看次数

标签 统计

scala ×9

jodatime ×2

sbt ×2

akka ×1

mongodb ×1

python ×1

pytz ×1

scalaz ×1