.NET 中的 MPXJ 将 java Date 转换为 .NET DateTime
我在 .NET 中使用 MPXJ 库来解析 MS Project (MPP) 文件,并且效果很好。我遇到的一个问题是尝试将任务开始日期和完成日期转换为 .NET DateTime 以与我的数据模型一起使用。
我正在检查所有任务并调用 task.getFinish() 和 task.getStart() ,它们都返回 java.util.Date 对象。
当我使用 task.getFinish().getYear()、task.getFinish().getMonth() 等来构建新的 DateTime 对象时,它会警告我它们已过时。
将开始日期和结束日期从 MPXJ 获取到 .NET DateTime 对象的最佳方法是什么?
谢谢。
I'm using the MPXJ library in .NET for parsing MS Project (MPP) files, and it's working great. The one issue I'm having is trying to translate the task Start and Finish date into .NET DateTime to use with my data models.
I am going through all the tasks and calling task.getFinish() and task.getStart() that both return javva.util.Date objects.
When I use task.getFinish().getYear(), task.getFinish().getMonth(), etc. to build up a new DateTime object it warns me that they are obsolete.
What is the best way to get the start and finish dates from MPXJ into a .NET DateTime object?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我知道我在这个问题上晚了两年多,但如果它对您或其他阅读此线程的人有用,这里有一个我组合在一起的简单的小扩展方法(在 C# 中)来处理此转换:
I know I'm over two years late on this one, but in case it's useful to you or anyone else reading this thread, here's a simple little extension method I threw together (in C#) to handle this conversion:
我也在使用 MPXJ 并遇到了同样的问题。有几种方法可以解决这个问题。我将在下面概述两种方法(我已经使用了两种方法,但不确定哪种方法更好):
当他们说 .getYear 已过时时,他们希望您这样做。
我完成的另一种方法是将 Java 日期转换为字符串,然后使用 Date.Parse 将其获取到 .NET Date 变量中。我使用可为 null 的类型,因为 Java Date 可能为 null。
如果您不需要所有部分,或者想要包含时区信息,则可以使用不同的日期格式字符串。以下是 Java 的 格式字符串选择的列表。
更新
另一种可能更高效的方法(比字符串解析)如下:
I am also using MPXJ and had the same issue. There are a couple of ways to deal with this. I'll outline two ways below (I have used both and am not sure which is better):
This is the way that they want you to do it when they say that .getYear is obsolete.
The other way I've done it is to convert the Java date to a string and then use Date.Parse to get it into a .NET Date variable. I use a nullable type because the Java Date could be null.
You can use a different date format string if you don't need all the parts, or if you want to include timezone info. Here's a list of the format string choices for Java.
Update
Another, perhaps more performant way of doing this (than string parsing) is the following: