我的数据库中有大量的日期,这些日期以如下的12/18/2013格式保存
现在我必须把它改成像这个1392/09/27这样的节气日期。
有什么可以转换的吗?(获取农历日期并将其更改为节气日期)
我需要它在vb.net中
发布于 2013-12-19 00:59:56
.NET中的System.Globalization命名空间承载number of different calendars。
您可以通过在一个日历中创建日期,然后从其他日历中获取日、月和年来在这两个日历之间进行转换。
Sub Main()
Dim gregorianDate = DateTime.Parse("12/18/2013")
Dim solarCalendar = New PersianCalendar()
Dim solarDay = solarCalendar.GetDayOfMonth(gregorianDate)
Dim solarMonth = solarCalendar.GetMonth(gregorianDate)
Dim solarYear = solarCalendar.GetYear(gregorianDate)
Console.WriteLine("{0}/{1}/{2}", solarYear, solarMonth, solarDay)
Console.Read()
End Sub输出:
1392/9/27
经过一些计算之后,PersianCalendar将返回您正在查找的“太阳”日期。
发布于 2013-12-19 02:12:08
您可以指定在解析日期/时间时要使用的区域性,如下所示:
Dim parsedDateTime As Date = Date.Parse("12/18/2013", CultureInfo.GetCultureInfo("en-US"))还可以指定在将日期/时间格式化为字符串时要使用的区域性,如下所示:
Dim formatted As String = parsedDateTime.ToString("yyyy/mm/dd", CultureInfo.GetCultureInfo("th"))因此,您可以通过组合这两个步骤将一种区域性转换为另一种区域性,如下所示:
Public Function ConvertDateStringToCulture(dateString As String, fromCulture As String, toCulture As String) As String
Dim parsedDateTime As Date = Date.Parse(dateString, CultureInfo.GetCultureInfo(fromCulture))
Dim formatted As String = parsedDateTime.ToString("yyyy/mm/dd", CultureInfo.GetCultureInfo(toCulture))
Return formatted
End Function然后,例如,如果您想要从美国日期转换为泰国日期,您可以这样做:
Dim converted As String = ConvertDateStringToCulture("12/18/2013", "en-US", "th")但是,您需要选择正确的区域性作为起点和目标。支持的区域性的Here is a list。
https://stackoverflow.com/questions/20663711
复制相似问题